long 型数据要加附加格式说明符 l 。
输出的格式:
printf("%ld,%ld",a,b);
注意,2个数都是用"%ld"格式输出,否则可能会得到意外的结果。
你备竖磨可以试试用下面的几个语句依次替换printf(“%d,%d”,a,b);
1.printf("%d,%ld",a,b);
2.
printf("%d\n",a);
printf("%d\n",b);
3.
printf("%ld\n",a);
printf("%ld\n",b);
你会发现2,3的输出结果是一样的,而1的输出纤祥结果却不是预期仿斗的。
应该运兆不会的,除非你的编译器的long型变量只有2个差悄歼字节虚冲,我这里运行的结果是32767,32768,不是0。long至少有4个字节,32768怎么会溢出呢
main()
{ long a,b;
a=32767;
b=a+1;
printf(“誉悔%f,%f”并虚弊绝族,a,b);
}
printf(“%d,%d”,a,b);
改为:
printf(“%d,%ld”,a,b);
应该不会吧
printf(“%ld,%ld”,a,b); 试试?