指向一维数组的指针

来源:百度知道 编辑:UC知道 时间:2024/06/22 11:42:22
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*p)[4];
p=&a[i];
p[0]代表什么?
*p[0]代表什么?
指向一维数组的指针,怎么看的啊?

int (*p)[4];//相当于定义一个二维数组
p=&a[0];//把a数组的首地址交给p
p指向a数组0行开头位置,等价于&a[0]
p+1指向a数组1行开头位置,等价于&a[1],这都是指向行的
p[0]表示指向0行0列地址,等价于&a[0][0],指向列的
*p[0]表示指向0行0列元素,等价于a[0][0],指向数组元素的

int (*p)【4】,这是数组指针,是专门指向二维数组的,p【0】代表a【0】,而*p【0】就代表 1 ,即数组a的第一行的第一个元素。

补充:p是个地址,p[0]还是个地址,*p也是个地址,*p[0]就是值了,**p也是值

p[0]即起始地址吧?
*p[0]=a[0][0]?