short是16位,long是32位,long long是64位。。int究竟是上面三个中哪个取决于编译器/平台环境。。
如果int是32位,和long没有区别。但为了保证程序的通用性,当你想使用32位数据类型时,请使用long 求采纳
这个得看你用的是什么程序语言和什么编译器. 按你的叙述来说, 可能是C/C++在32位编译器下. long的完整写法应该是 long int long int和int在32位编译器下都是4字节,效果完全相同,取值范围也一样. 但在其他编译器上就可能不一样. long int固定为32位, int根据编译器而变.
C++标准只规定int型数据所占的字节数不大于long型,不小于short型。你说的情况在32位的机子上才是这样。作如下比较:16位平台 char 1个字节8位 short 2个字节16位 int 2个字节16位 long 4个字节32位 指针 2个字节 32位平台 char 1个字节8位 short 2个字节16位 int ...
C标准只规定了short至少16位,long至少32位,long long 至少64位[1],同时long long >= long >= ...
C数据类型int和long int 表示的范围是根据编译器的不同而决定的:在16位编译器中(如Trubo C 2.0)中,int类型占2个字节,而long int占4个字节。在32位编译器中(如VC++ 6.0)中,int 类型占4个字节,long int也占4个字节。
Java 是跨平台的,所以在 32 位和 64 位操作系统上它的 long 都是8字节,int 都是4字节。
C语言没有明确规定它们所占内存的字节数,只要求long型数据长度不短于int型,short型不长于int型。具体如何实现由计算机系统自行决定。如果如你所说都定义为4个字节(即32位)的话,这种情况下是没有区别的。
选B,因为联合体共用内存,分配的内存大小是需要最多内存的那个变量所要求的字节数,在这里是y,共需4*4等于16字节。