新樱通信资源:关于c语言编程的,刚学.

来源:百度文库 编辑:高考问答 时间:2024/05/04 11:33:34
我用的是turbo c++ 3.0 的,根据其数据类型(int long等)我输入以下东东:
#include<stdio.h>
void main()
{
long a,b;
a=32767;
b=a+1;
printf("%d,%d\n",a,b);
}
我运行以后的结果是32767 0,然而按照我的推断应该是32767 32768 才对啊,谁能告诉我是什么原因啊?在此先谢谢了!
本意是想验证整型数据类型的区别的,谁想却出现故障了.

long型数据的最大数不是32767,而是很长的一串数字。不知道TURBO C 3.0是怎么规定变量字节数的;
但长整型数字输出时应该用“%ld”,而不是“%d”,%d是短整型数值的输出方法,所以它应该自动进行了强制类型转化。

我看大家的答案都不错呀..

的确是改写成”%ld”因为如果用"%d",它只取两个字节的长度读出,而LONG是四个字节,所以电脑会自动取低位的两个字节(在这里说一下,int不一定是两个字节,要看情况和语言工具而定而定).你把它们换成2进制就一目了然咯

int的数据长度与long的数据长度一样

换更高级一点的工具吧,

long的最大数是32767
你加1了以后就产生了溢出所以就等于0了