c语言中的有符号整型与有符号短整型的区别?

如16位计中,int 2字节和short的字节数相同,这是不是说短整型和整型是一个意思,没有区别呢?

有符号整型,写作signed int, 简写为int时效果相同,因为C语言默认为有符号数。
有符号短整型,写作signed short, 简写为short。

在16位编译器下,int和short都是占2个字节,值域为-32768~+32767。这时二者没有区别。
在32位和64位编译器下,二者是有区别的:
1 占空间不同。sizeof(int) = 4, sizeof(short) = 2。 即short还是2个字节,int变成了4个字节。
2 可表示范围不同。
由于空间不同,short 的值域还是-32768~+32767,而int的值域则扩大到-2147483648~+2147483647。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-22
是的,从效果上没有区别.都是16位的,表示的范围,没有区别.
第2个回答  推荐于2017-09-03
short <= int <= long int
这条是C规范,其他的具体长度要看编译器的不同了。
在16位编译系统中,int和short本质上确实没啥区别,当然仅是16位没区别。追问

谢谢!我想问一下,短整型有没有前后缀?,如果没有,那我该怎样表示短整型的常量呢?
如long 123L,那short ?

追答

short是没有后缀的,后缀的作用是把一些较小的数字常量当成较大的类型来处理,所以后缀包括L(long)、LL(long long)、U(unsigned),大小写均可。L、LL和U可以联合使用,如3ULL,20LU等。
其中long long是C99的标准,一些早期的编译器是不支持的。而且在VC开发环境中long long也只是4字节,8字节的整形是__int64;在linux中long long是8字节。

追问

Thanks!那怎样表示短整型常量?

追答

短整型常量啊,貌似需要用变量保存了。
一个数字常量默认应该是认为int型的,超过int的最大大小就认为是unsigned int的。
这个不太确定。

本回答被提问者采纳
第3个回答  2012-02-22
基本上可以这么说吧,但只限定于你所说的16位机
第4个回答  2012-02-22
只能说,它们表示数据的范围一样呢。具体还要看编译器的。