数组指针,用楼上的话就是指向数组的指针,操作指针就可以操作数组如下:
int a[3] = {1,2,3};
int *p = a;
printf("数组指针:%d\n", *(p+1));
// 打印的结果为2,原因是p初始化指向了数组a的首地址,即a[0]。*(p+1)即先将地址向后挪动一位即指向了a[1],再取地址里面的值,即取a[1]的值,故结果为2。
指针数组,保存指针的数组:
int a1[2] = {1,2};
int a2[3] = {1,2,3};
int a3[4] = {1,2,3,4};
int* pArray[3] = {a1, a2, a3};
printf("指针数组:%d\n",*(pArray[2]+3));
//打印结果为4,原因是每个数组的数组名就是指向该数组第一个元素的指针。而pArray是存了3个指针的数组,pArray[2]就是指针a3,a3+3就是指向了a3的第4个元素,所以pArray[2]+3指向了a3的第4个元素。*(pArray[2]+3))就是取地址里面的值,故为4
温馨提示:答案为网友推荐,仅供参考