如何区别指针数组和数组指针?

来源:互联网 发布:八爪鱼数据采集能干嘛 编辑:程序博客网 时间:2024/06/03 13:35
如何区别指针数组和数组指针?


例:下面到底哪个是数组指针,哪个是指针数组呢: 
A),int *p1[10]; 
B),int (*p2)[10];


答案:


(1)对A来说:“[]”的优先级比“*”要高。p1 先与“[]”结合,构成一个数组的定义,数组名为p1,int *修饰的是数组的内容,即数组的每个元素。那现在我们清楚,这是一个数组,其包含10个指向int 类型数据的指针,即指针数组。


(2)对于B来说:在这里“()”的优先级比“[]”高,“*”号和p2 构成一个指针的定义,指针变量名为p2,int 修饰的是数组的内容,即数组的每个元素。数组在这里并没有名字,是个匿名数组。那现在我们清楚p2 是一个指针,它指向一个包含10 个int 类型数据的数组,即数组指针。


(3)借助下面的图加深理解:


原创粉丝点击