数组指针和指针数组有什么区别?
数组指针数组指针:本质是一个指针,指向了一个数组,数组中的每个元素都是某种数据类型的值(比如 int 类型)。
int (*p)[n];//定义了一个数组指针,指向一个大小为n的数组,数组中的每个元素都是int类型数组指针也称行指针,也就是说,当指针p执行p+1时,指针会指向数组的下一行,如:
int a[3][4];int (*p)[4];//p是一个数组指针,指向了一个包含4个int型元素的数组p=a;//将二维数组的首地址赋给p,即a[0]或a[0][0]p++;//跨过第一行,p指向了a[1][0] 指针数组指针数组:本质是一个数组,该数组中的每个元素都是一个指针。
int *p[n];//定义了一个指针数组,数组大小为n,数组中的每个元素都是一个int*指针指针数组是一个包含若干个指针的数组,p是数组名,当执行p+1时,则p会指向数组中的下一个元素。
int a[3][4];int *p[3];//定义了一个数组,该数组中有3个int*指针变量,分别为p[0]、p[1]、p[2]//p++;//若执行此语句,则数组p指向下一个数组元素for(int i=0;i