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;
}
最后修改:2024 年 07 月 17 日
如果觉得我的文章对你有用,请随意赞赏