顾名思义
指针数组:指针的数组
例如 int* pa[5]
意思为存放五个元素,这五个元素都是一级指针
数组指针:数组的指针
例如 int (*pa)[5]
[]的优先级高于*,所以在这里的意义又不相同
意思是 所以是 1个指针,用来指向 有5个元素的数组 。
接下来看一个例子
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7 };
int(*pa)[5] = &arr;
printf("%d ", ((*pa)+1)[0]);
return 0;
}
它的运算结果显然是跳出整个数组,即*(pa+5)
答案为6
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7 };
int(*pa)[5] = &arr;
printf("%d ", (*pa)[1]);
return 0;
}
改变一下,这样它的结果就是2了
意思是*(pa+1)