数组指针和指针数组的疑问?

数组指针和指针数组的疑问?

int (*p)[3] = a

这里的p是不是一个变量相当于我们数学中理解的x?

https://img1.sycdn.imooc.com//climg/6307060e091946a404320182.jpg

指针数组就是数组里面存的都是地址

数组指针是指把这个数组定义成指针类型?有点不太理解


如上图一维数组的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

登陆购买课程后可参与讨论,去登陆

1回答
山行老师 2022-08-26 00:47:47

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]; //完全正确



问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师