C语言指针数组和数组指针

1.定义

指针数组:

  • 从文字的角度来理解,指针数组这个词语中指针是修饰词,数组是主语,因此可以理解为指针的数组,所以这个东西本质上还是一个数组,数组里的每一个元素都是指针;
    数组指针:
  • 同样我们从文字的角度来理解,数组指针中数组是修饰词,指针是主语,因此是指向数组的一个指针

2.实例

char *p1[5]
//[]的优先级比*更高,因此p1先和[]结合,所以这个是一个指针数组,
//*用来修饰数组的,代表数组中的元素都是指针

char (*p2)[5]
//加了括号之后,()的优先级比[]高,p2首先是一个指针,所以是数组指针
//指向的是一个具有五个元素的数组

图解

2-1PZ6092I9D6

2-1PZ6092Q4443

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