指针与二维数组

简介: 指针与二维数组

1. 一维数组名就是数组的首地址

在一维数组中a表示数组首元素地址。

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int a[3] = {1,2,3};
    int *p,*p1;
    p1 = &a[0];
    p = a;
    printf("%d\n",*p);
    printf("%d\n",*p1);
    system("pause");
    return 0;
}

运行效果如下所示:



2.二维数组

定义一个二维数组如下所示:

int a[2][2] = {{3,4},{1,2}};

2.1

a[0] :a[0]中第1列元素的地址,&a[0][0]。

a[1]:第2列元素的地址,&a[1][0]。

测试代码:

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int a[2][2] = {{3,4},{1,2}};
    printf("%d\n",*a[0]);
    printf("%d\n",*a[1]);
    system("pause");
    return 0;
}  

运行结果如下:



2.2

在二维数组中a表示第1行元素的地址,a+ i表示第i行元素的地址。

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int a[2][2] = {{3,4},{1,2}};
    printf("%d\n",*(a[0]+0));
    printf("%d\n",*(a[0]+1));
    printf("%d\n",*(a[1]+0));
    printf("%d\n",*(a[1]+1));
    system("pause");
    return 0;
}  

运行结果如下:



2.3

*a:相当于首行首元素地址。

测试代码

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int a[2][2] = {{3,4},{1,2}};
    printf("%d\n",*a[0]);
    printf("%d\n",**a);
    system("pause");
    return 0;
}  

2.4

*a==a[0]==&a[0][0]

测试代码:

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int a[2][2] = {{3,4},{1,2}};
    printf("%d\n",*a);
    printf("%d\n",a[0]);
    printf("%d\n",&a[0][0]);
    system("pause");
    return 0;
}  

运行结果如下所示:


int a[3] = {1,2};
*a :1
int a[2][2] = {{3,4},{1,2}};
*a 是{3,4}的首地址
相关文章
|
2月前
|
C语言
C语言---二维数组&&指针
C语言---二维数组&&指针
18 0
|
11天前
指针\动态二维数组空间
指针\动态二维数组空间
13 4
|
9天前
|
C语言
C语言----关于二维数组传参的本质相关的知识点(数组指针、指针数组)
C语言----关于二维数组传参的本质相关的知识点(数组指针、指针数组)
|
9天前
|
C语言
C语言----指针模拟二维数组
C语言----指针模拟二维数组
|
2月前
|
存储 算法 C语言
C语言指针与二维数组在函数参数传递和动态内存管理中的应用
C语言指针与二维数组在函数参数传递和动态内存管理中的应用
22 0
|
2月前
指针的基础应用(数组的颠倒和排序,二维数组的表示)
指针的基础应用(数组的颠倒和排序,二维数组的表示)
18 0
|
2月前
|
C语言 定位技术 存储
【C语言基础入门】二级指针、一维数组与指针、二维数组与指针
【C语言基础入门】二级指针、一维数组与指针、二维数组与指针
106 0
【C语言基础入门】二级指针、一维数组与指针、二维数组与指针
|
2月前
|
存储 并行计算 C++
指针详解(二级指针、指针数组和数组指针、字符指针、二维数组传参、函数指针变量)(二)
指针详解(二级指针、指针数组和数组指针、字符指针、二维数组传参、函数指针变量)(二)
|
C语言
C语言程序设计(王立柱)第九章答案 二维数组和指针
只有聪明人才能看见的摘要~( ̄▽ ̄~)~
59 0
|
C语言
深度理解C语言四——指针的进阶二(函数指针,函数指针数组,一维、二维数组传参,指针传参)
深度理解C语言四——指针的进阶二(函数指针,函数指针数组,一维、二维数组传参,指针传参)
103 0