gpt4 book ai didi

c - C 中的 (*p)[8] 和 *p[8] 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 15:13:34 25 4
gpt4 key购买 nike

两个声明如下:

int (*p)[8];
int *p[8];

最佳答案

第一个是指向一个包含 8 个整数的数组的单个指针,而第二个是一个包含 8 个指针的数组,每个指针指向一个整数。

如果你只是启动 cdecl,这对于这类事情来说是很棒的:

pax$ cdecl
Type `help' or `?' for help

cdecl> explain int (*p)[8];
declare p as pointer to array 8 of int

cdecl> explain int *p[8];
declare p as array 8 of pointer to int

cdecl> explain char*(*fp[])(int,float*);
declare fp as array of pointer to function (int, pointer to float)
returning pointer to char

实际上有一个 clockwise/spiral rule你可以在脑海中使用它,但自从我发现 cdecl 以来我就不必担心了,出于同样的原因,我不再将大的任意 32 位数字从十进制转换为十六进制不再用头了 - 如果必须的话,我可以但是使用工具更容易 :-)

关于c - C 中的 (*p)[8] 和 *p[8] 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6202203/

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