short型与int型的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了short型与int型的区别相关的知识,希望对你有一定的参考价值。
Turbo C中他们两个占用大小一样
那为什么还要分成两个
还有
有些编译系统long型与int型大小相同
也为什么要分成两个?
这样的话不就多余了?
注意
我的意思是short既然和int一样长
那么还要short干什么?
在C语言中可以用sizeof运算符,获取数据类型或者变量所占的内存字节数。
示例代码如下:
#include <stdio.h>
int main()
printf("%d\t%d\t%d\n", sizeof(int), sizeof(short), sizeof(long));
return 0;
参考技术A 前一时期,微型计算机的字长一般是16位,故以16位存放一个整数,但是整数的范围太小,往往不够用,因此将long定为32位。通常的做法是:把long定为32,把short定为16,而int可以16,也可以32位。 参考技术B C是面向计算机的编程语言,速度和跨硬件是基本的追求,int和机器字长一样,也就是和通用寄存器长度一样,因此速度最优。你可以想象一下,你的程序都用long,结果在16位机上运行,不慢死才怪呢。本回答被提问者采纳 参考技术C short两个字节,long四个字节,int和机器相关,不一定和short和long相同的 参考技术D C++规范里,对int
,short,long定义的标准是:
short至少16位
int至少于short一样长
long至少32位,且至少与int一样长
他们的差别就是在内存里,存储的时候,使用内存空间的大小
因为使用内存空间大小不同,因此他们能够表示的数值的范围也就不一样了.
另外,关于int用多少内存来存储,还要看具体的平台.目前windows下的编译器编译出来,int都是32位的.
short与int
short s1 = 1; s1 = s1 + 1,错误,int不能转换为short.
为什么 short s1 = 1; s1 += 1正确?
s1 += 1跟 s1 = s1 + 1还有区别吗???
s1+=1 和你s1 =s1 +1是一样的。 参考技术A += 是运算符的重载
而 a=a+1;的+是 普通运算符
运算符重载后更强大.
比如方法重载,你可以做一些判断在里面.ok本回答被提问者采纳 参考技术B s1 = s1 + 1
1的默认类型是int,你需要对相加后的记过做强制转换
short s1 = 1
系统自动转换了
以上是关于short型与int型的区别的主要内容,如果未能解决你的问题,请参考以下文章