1.数组指针(又称行指针)
int (*p)[n] //p+1时,p要跨过n个整型数据的长度
二维数组赋给一指针时:
int a[3][4];
int (*p)[4]; //定义一个数组指针,指向含有4个元素的一维数组
p=a;
p++;//从第0行指向了第1行
2.指针数组
int *p[n] //[]优先级高,先和p结合成一个数组,int *表明其存放的元素是指向整型的指针;
//p+1时,p指向下一个数组元素
二维数组赋给一指针数组:
int *p[3];
int a[3][4];
for(i=0;i<3;i++)
p[i]=a[i];
小结:
数组指针只是个指针变量,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。
用来指向二维数组时:
1. *(p[i]+j)
2. *(*(p+i)+j)
3. (*(p+i))[j]
4. p[i][j]
/*指同一个元素*/
优先级:()>[]>*
网友评论