long int与int的输出
教材中说:一个int型数据可以按照%ld格式输出。但我在tc2.0中运行时,出现的结果却不正确main()
{int l=123; clrscr();
printf("%ld",l);}
此题中,在tc2.0中输出结果为:51380347。在mytc中输出结果为:269156475。为何得不到正确结果?
----------------解决方案--------------------------------------------------------
以下是引用feitianma在2006-4-18 14:31:00的发言:
main()
{int l=123; clrscr();
printf("%ld", (long)l);}
加个强制类型转换就行了! main()
{int l=123; clrscr();
printf("%ld", (long)l);}
----------------解决方案--------------------------------------------------------
有没有不用类型强制转换的方法呢?是否那样写程序是错误的?
----------------解决方案--------------------------------------------------------
那样写是错误的.要知道int变量占2个字节.而long int变量占4个字节.
----------------解决方案--------------------------------------------------------
此言差矣,可以把一个int型数据按照long型格式输出。这是谭浩强第三版教材上的内容。为何不能得到正确结果?
----------------解决方案--------------------------------------------------------
在哪写着的?我怎么没看见?
如果有他意思也是指强制类型转换后输出的吧!!
不可能直接就能输出!
存储方式在那儿那
----------------解决方案--------------------------------------------------------
教材P76页“一个int型数据可以用%d或%ld格式输出”
----------------解决方案--------------------------------------------------------
没有问题.我想可能和编译器有关.但没有必要对这个问题深入研究.你的程序要严谨.定义为long型结果就用"%ld",定义为int型结果就用"%d".
----------------解决方案--------------------------------------------------------
以下是引用lj_860603在2006-4-19 18:48:00的发言:
没有问题.我想可能和编译器有关.但没有必要对这个问题深入研究.你的程序要严谨.定义为long型结果就用"%ld",定义为int型结果就用"%d".
没有问题.我想可能和编译器有关.但没有必要对这个问题深入研究.你的程序要严谨.定义为long型结果就用"%ld",定义为int型结果就用"%d".
恩,肯定
而且,实际结果是要尊重的
----------------解决方案--------------------------------------------------------
能否说具体些?谢谢!!!!
----------------解决方案--------------------------------------------------------