C++ int型和long int型有什么区别

来源:百度知道 编辑:UC知道 时间:2024/05/24 06:37:03
VC里int和long int都是4个字节,可表示的范围也都是-2147483648到2147483648,既然表示的范围都一样,为什么一个叫"长"整形呢?
只用int不就行了么?

(1)在VC下没有区别。两种类型均用4个字节存放数据。
(2)VC是后出的编译器,之前有很多早期的C编译器,在早期编译器下long int占4个字节,int占2个字节。
(3)之所以有“整型”和“长整形”两种不同类型,是C语言在诞生时发明者规定好的,前者存储的整数的值域小于后者。
这个问题不用牵肠挂肚,在VC下用谁都可以。

在标准中,并没有规定long一定要比int长,也没有规定short要比int短。
标准时这么说的:长整型至少和整型一样长,整型至少和短整型一样长。
这个的规则同样适用于浮点型long double至少和double一样长,double至少和float一样长。
至于如何实现要看编译器厂商

区别如下:

占内存长度不同和取值范围不同。

32位系统:long是4字节32位,int是4字节32位。

64位系统:long是8字节64位,int是4字节32位。



注意事项:

1、long类型的范围是:-9223372036854775808~9223372036854775807。

2、如果只用正数可以考虑用unsigned long long范围是:0~18446744073709551615。

对象类型:

long、int占多少字节,得看计算机cpu是多少位的。16位机器上,int2字节,long4字节,32位机器上二者都是4字节,64位机器上,int4字节,long8字节。



这个完全是跟编译器有关的,比如 :16位的系统时 short int和int数据长度都是16位 ,32位编译器 long int和int数据长度也都是32位;从16位系统到32位系统使32系统保留了long int,因为16位系统时int 与long int 是不同的,那为什么不把它去掉呢?

这也许就好像你在家中有个小名,来学校有个学名一样,有了学名后,回家家里人还是会叫小名的!

不同位计算机字节数总是不同的。
16位的系统short int、int数据长度都是16位 ,32位编译器long in