long和int区别以及溢出问题

不要复制的,现有的问题答案我都看过,不行!为什么int在c语言中达到一定值时会溢出,但是换成long就不会了

因为INT型的变量,编译器分配了2个字节空间,如果是long类型的,则分配4个字节空间啊。所以,long型的存储的数大,但是超过其范围也是会溢出啊。呵呵。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-11
这就像两个杯子,一个能装1升水(int) 一个能装2升水(long),
如果你将 1.5升水 放到第一个杯子中,肯定放不下,因为它只能装1升水,硬往里到的话,水就会溢出来,而若放到第二个杯子中,就完全没有问题。
第2个回答  2011-12-11
int 2字节(有的编译器是4字节) ,范围,-2的15次方到+2的15次方减1(字节不同范围不同)
long 4字节(有的编译器是8字节) 范围 -2的31次方到+2的31次方减1(字节不同范围不同)

相信你明白了!