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

如16位计中,int2字节和short的字节数相同,这是不是说短整型和整型是一个意思,没有区别呢?... 如16位计中,int 2字节和short的字节数相同,这是不是说短整型和整型是一个意思,没有区别呢? 展开
 我来答
风若远去何人留
推荐于2017-10-10 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部
有符号整型,写作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。
百度网友28b4182
2012-02-22 · TA获得超过7222个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1854万
展开全部
是的,从效果上没有区别.都是16位的,表示的范围,没有区别.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江湖三脚猫Django
推荐于2017-09-03 · TA获得超过3495个赞
知道大有可为答主
回答量:3333
采纳率:100%
帮助的人:3169万
展开全部
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字节。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无病呻吟2010
2012-02-22 · TA获得超过963个赞
知道小有建树答主
回答量:527
采纳率:0%
帮助的人:579万
展开全部
基本上可以这么说吧,但只限定于你所说的16位机
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AIR_IT
2012-02-22 · TA获得超过183个赞
知道答主
回答量:277
采纳率:100%
帮助的人:162万
展开全部
只能说,它们表示数据的范围一样呢。具体还要看编译器的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式