追加!c语言的输出问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 11:15:33
我用的是Turbo c++3.0
long a=65;
printf("%d,%ld",a,a);
输出竟是65,4259840,错在哪?回答详尽者追加!

这是tc版本问题,你可以把它看成一个bug。
我用free c编译输出的结果是65,65

哈哈。
这个取决于TC30的实现。。。
像这个问题,如果在VC下面肯定是两个65没的说。
至于TC30嘛,你可以去翻翻它们的文档吧。

4259840 = 0x00410000
65 = 0x0041
很显然turbo c++3.0把long型作为一个4位的整形处理,显示%ld时取了8位

ld是按长型打印,这里所谓的长型应该是4字节。
而为什么会出现这个问题可能是系统问题!你用的是32位的系统?
也许和编译器也有关系。

erhgfh