gpt4 book ai didi

c - 什么时候指针的大小等于 2 个字节而不是 C 中的 4 个字节?

转载 作者:太空宇宙 更新时间:2023-11-04 01:23:39 24 4
gpt4 key购买 nike

int* p;
printf("%d", sizeof(p));

答案是 4 个字节!我正在使用 C

如何声明一个大小(2 字节)的指针?它取决于编译器吗?据我所知,C 和 ansi C 是相同的..这在 ansi C 中会有所不同吗?

最佳答案

C 标准有意不指定指针的大小。

甚至 允许不同类型的指针大小不同:sizeof(type1*) 不一定与 sizeof(type2*)!

这允许 C 将最规则的架构定位到最奇特的架构。

最后,您的程序行为未定义:您应该使用%zu 作为sizeof 返回的格式化程序。 (请注意,尽管 p 未初始化,但 sizeof(p) 已定义 - 这是因为 sizeof(p) 已被评估在编译时。)

关于c - 什么时候指针的大小等于 2 个字节而不是 C 中的 4 个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35913813/

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