gpt4 book ai didi

c - C中指针的大小是多少?它不应该取决于您工作的操作系统吗? 64 位与 32 位等

转载 作者:行者123 更新时间:2023-11-30 18:10:09 25 4
gpt4 key购买 nike

我最近在一次采访中遇到了这个问题。 “C 中指针的大小是多少?”。

我的第一个想法是问:“这取决于计算机操作系统,我们是否工作在 64 位、32 位、8 位等。”根据我之前使用 C 的知识(现在主要是在 python 中),我记得如果我们在 32 位操作系统中,那么指针的大小将为 4 个字节,在 64 位操作系统中为 8 个字节。有人可以解释得更清楚吗?或者如果我错了请纠正我?

最佳答案

the size of a pointer

printf("%zu bits\n", sizeof (your_pointer_type_here) * CHAR_BIT);

您可以看到 16、32、48、64 位或各种其他值。 16、32、64 无疑是最受欢迎的。

除了具有 4 字节指针的“32 位操作系统”和具有 8 字节指针的“64 位操作系统”之外,C 还允许使用各种体系结构。它依赖于编译器,并受到给定体系结构上可能的影响。

尺寸可能取决于类型

函数指针不必与对象指针具有相同的大小/编码。

此外,int * 可能与 double * 不同,但所有对象指针都可以与 void * 相互转换 - 甚至当尺寸不同时。

<小时/>

好的代码不需要知道大小,而是根据需要进行调整。

关于c - C中指针的大小是多少?它不应该取决于您工作的操作系统吗? 64 位与 32 位等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59131040/

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