sizeof(int)为什么输出的是4而不是2呢,int类型究竟占几个字节

以上文章来自:https://blog.csdn.net/weixin_42339460/article/details/81455103
http://charlesxie.blog.51cto.com/2236179/939680 ,写得挺好的,总结一下
sizeof(int)为什么输出的是4而不是2呢,int类型究竟占几个字节

最近在看深入理解计算机系统这本书,上面提到了在32位机器64机器int类型都占用4个字节。后来,查了The C Programming language这本书,里面有一句话是这样的:编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。这即是说各个类型的变量长度是由编译器来决定的,而当前主流的编译器中一般是 32位机器64位机器 中int型都是4个字节(例如,GCC)。下面列举在GCC编译器下32位机器和64位机器各个类型变量所占字节数:

sizeof(int)为什么输出的是4而不是2呢,int类型究竟占几个字节_第1张图片

补充总结:
经过询问,网上查找以及测试,发现 数据类型占内存的位数实际上与操作系统的位数和编译器(不同编译器支持的位数可能有所不同)都有关,具体某种数据类型占字节数得编译器根据操作系统位数两者之间进行协调好后分配内存大小。具体在使用的时候如想知道具体占内存的位数通过**sizeof(int)**可以得到准确的答案。

你可能感兴趣的:(C语言知识积累)