猿问

C“int”的大小是2字节还是4字节?

C“int”的大小是2字节还是4字节?

C中的整数变量占2字节还是4字节?它所依赖的因素是什么?

大多数教科书说整数变量占两个字节。但是,当我运行一个程序,打印一个整数数组的连续地址时,它显示了4的差异。



qq_花开花谢_0
浏览 411回答 3
3回答

开心每一天1111

这是C中最初可能混淆的点之一,但C标准只指定了最小范围对于保证支持的整数类型。int保证能够容纳-32767到32767,这需要16位。在这种情况下,int,是两个字节。然而,实现可以超越这个最小值,正如您将看到许多现代编译器所做的那样。int32位(这也意味着4个字节相当普遍)。你的书上说有两个字节的原因很可能是因为它太旧了。有一段时间,这是一种常态。通常,您应该始终使用sizeof运算符如果您需要知道它在您使用的平台上的字节数。为了解决这个问题,C99添加了新类型,您可以显式地请求一个特定大小的整数,例如int16_t或int32_t..在此之前,没有通用的方法来获得特定宽度的整数(尽管大多数平台提供了每个平台的相似类型)。

长风秋雁

没有具体的答案。这取决于平台。它是由实现定义的。可以是2,4或其他什么的。背后的想法int它应该与给定平台上的自然“单词”大小相匹配:16位在16位平台上,32位在32位平台上,64位在64位平台上,你就知道了。然而,出于向后兼容性的考虑,一些编译器更倾向于坚持32位。int即使在64位平台上。2字节的时间int但是很久没有了(16位平台?)除非您使用的是16位字大小的嵌入式平台。你的课本可能很旧。
随时随地看视频慕课网APP
我要回答