如何区别指针数组和数组指针?
例:下面到底哪个是数组指针,哪个是指针数组呢:
A),int *p1[10];
B),int (*p2)[10];
答案:
(1)对A来说:“[]”的优先级比“*”要高。p1 先与“[]”结合,构成一个数组的定义,数组名为p1,int *修饰的是数组的内容,即数组的每个元素。那现在我们清楚,这是一个数组,其包含10个指向int 类型数据的指针,即指针数组。
(2)对于B来说:在这里“()”的优先级比“[]”高,“*”号和p2 构成一个指针的定义,指针变量名为p2,int 修饰的是数组的内容,即数组的每个元素。数组在这里并没有名字,是个匿名数组。那现在我们清楚p2 是一个指针,它指向一个包含10 个int 类型数据的数组,即数组指针。
(3)借助下面的图加深理解:
如果觉得《如何区别指针数组和数组指针?》对你有帮助,请点赞、收藏,并留下你的观点哦!