gpt4 book ai didi

c - 不理解 *p[3] 和 (*p)[3] 之间的区别

转载 作者:行者123 更新时间:2023-12-02 05:23:16 25 4
gpt4 key购买 nike

在我的书中,已经写到 *p[3] declares p as an array of 3 pointers .我知道了。但是对于 (*p)[3] 已经写成 (*p)[3] declares p as a pointer to an array of three elements .这是什么意思? 没有例子(*p)[3] .谁能给我举个例子??

最佳答案

int a[3] = {1,2,3};
int (*p)[3];
p=&a;
printf("%d %d %d",(*p)[0],(*p)[1],(*p)[2]);

首先,您必须了解 之间的区别a 和 &a . Value两者的 a 和 &a 将是 .但它们的含义存在巨大差异。这里 a代表 first elementarray&a[0]&a代表整体或 complete array .如果你这样做 a+1您会找到 下一个元素的地址 array&a[1]但如果你执行 &a+1 ,它会给出 next addresscomplete array即这里 &a+1 = &a[2]+1 .因此这里 p=&a表示您已分配 address of an arraysize 3pointer p .

关于c - 不理解 *p[3] 和 (*p)[3] 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22302890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com