数组指针和指针数组

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]
/*指同一个元素*/

优先级:()>[]>*

你可能感兴趣的:(数组指针和指针数组)