求高手帮我这个搞下!

来源:百度知道 编辑:UC知道 时间:2024/05/27 09:54:00
# include <stdio.h>
void main()
{
int a,b;
a=32767;
b=a+1;
printf("%d,%d\n",a,b);
}
运行结果是 32767 -32768
在哪里放long 运行的结果是32768
long a,b; 不行的 这个结果是0 我用的是Turbo C V2.0!!

# include <stdio.h>
void main()
{
long a,b;
a=32767;
b=a+1;
printf("%ld,%ld\n",a,b);
}

在开头

long a,b;

你用什么编译的,我的用int的结果就已经是32767,32768了

看你编译环境中定义int数据是几个字节
有的是两个字节,有点是四个字节。
你可以跑一下下面的程序:
#include "Stdio.h"
#include "Conio.h"

int main(void)
{
/* 此处添加你自己的代码 */
int a;
printf("int = %d\n",sizeof(a));
getch();
return 0;
}
结果应该是:int = 2
2个字节的带符号int型数据取值范围-32768---32767
2个字节的无符号int型数据取值范围0---65535
附:%u输出无符号