数组指针和指针数组的疑问?
来源:1-13 指针和二维数组
慕后端9087467
2022-08-25 13:34:32
int (*p)[3] = a
这里的p是不是一个变量相当于我们数学中理解的x?
指针数组就是数组里面存的都是地址
数组指针是指把这个数组定义成指针类型?有点不太理解
如上图一维数组的a:int *
二维数组的b: int(*)[2]
int * 和 int(*)是不是都是数组指针?
是不是只代表一个的地址的时候就是int *,如果是多个就是int (*)[数组长度]?
下面我的理解是否正确?
上面的b就是指的b数组的第一行,所以b的类型就是int(*)[2]
b[0]是指b[0][0] 就是指的第一行第一个,所以是单个就是int *
&b是指最外层的整个的所以就是int (*)[3][2]
1回答
山行老师
2022-08-26
1)指针数组就是数组里面存的都是地址【理解正确】,数组指针是指向数组的指针;
2)int * p是普通指针,int *p[n]是指针数组, int(*p)[n]是数组指针,这么说清楚了吧;
3)你的理解正误情况如下:
1>上面的b就是指的b数组的第一行,所以b的类型就是int(*)[2];//完全正确.
2> b[0]是指b[0][0] 的地址,就是指向第一行第一个元素,所以只能用int *去接受二维数组的b[n];
3> &b是指最外层的整个的所以就是int (*)[3][2]; //完全正确
相似问题