C - 指针大小

2024-01-23

char c[] = {'a','b','c'};
int* p = &c[0];
printf("%i\n", sizeof(*p)); //Prints out 4
printf("%i\n", sizeof(*c)); //Prints out 1

我对这段代码感到非常困惑。 p 和 c 都表示数组 c 在第 0 个索引处的地址。但是为什么 sizeof(*p) 打印出 4 呢?不应该是1吗?


Because p属于类型int *, so *p属于类型int,这在您的实现中显然是 4 个字节宽。


And use %zu用于印刷size_t (what sizeof如果您不希望程序调用未定义的行为,则可以使用yields)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C - 指针大小 的相关文章

随机推荐