首先看两个代码:
第一个:int (*p)[10]
第二个:int *p [10]
这两个代码看起来几乎一样,但它们有什么区别呢?
首先介绍第一个
指针数组
顾名思义,指针数组是一个数组,用来存放指针的数组。
语法形式:
类型 + * +(p)[ ]
如果是int类型,数组里存放的就是int*,如果是char类型,数组里存放的就是char*。
例如:int *p[10]
p会先与后面的方括号结合为一个数组p[10],这个数组可以存放10个int*类型的数据。
这个数组有10个元素,每个元素是( int * )类型的数据
数组指针
数组指针是一个指针,指向的是一个数组的地址。
语法形式:
类型+(* p)+[ ]
*会先与变量p结合,成为一个指针,再与后面的方括号结合。指针变量指向这个数组的地址。
例如:int(*p)[10]