数组指针(也称行指针)
int (*p)[n]
()的优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,要执行p+1时,要跨过n个整型数组的长度
如果要将二维数组赋给一指针,应这样赋值:
int a[3][4];
int (*p)[4]; //该语句定义的是一个数组指针,指向含4个元素的一维数组
p = a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0]
p++; //该语句执行过后,p跨过a[0][]行指向了a[1][]行
指针数组
int *p[n];
[]优先级高,先于p结合成一个数组,再由int *说明这是一个整型指针数组,
它有n个指针类型的数组元素。这里执行p+1时,则p指向下一个数组元素,
p[0],p[1],p[2]....p[n-1],而且他们分别是指针变量可以用来存放变量地址
数组指针只是一个指针变量,专门用来指向二维数组的,它占有内存中的一个只针对额存储空间。指针数组是多个指针变量,以数组的形式存在内存中,占有多个指针的存储空间