1.定义
指针数组:
- 从文字的角度来理解,指针数组这个词语中指针是修饰词,数组是主语,因此可以理解为指针的数组,所以这个东西本质上还是一个数组,数组里的每一个元素都是指针;
数组指针: - 同样我们从文字的角度来理解,数组指针中数组是修饰词,指针是主语,因此是指向数组的一个指针
2.实例
char *p1[5]
//[]的优先级比*更高,因此p1先和[]结合,所以这个是一个指针数组,
//*用来修饰数组的,代表数组中的元素都是指针
char (*p2)[5]
//加了括号之后,()的优先级比[]高,p2首先是一个指针,所以是数组指针
//指向的是一个具有五个元素的数组
3.代码实现
int main()
{
char* p1[5] = { "hello","world","aaa","bbb","ccc" };
char array[5] = { 1,2,3,4,5 };
char(*p2)[5] = &array;
printf("%d, %d\n", sizeof(p1), sizeof(p2));
//输出结果未20, 4
return 0;
}