又一道求解释
本帖最后由 翅膀团 于 2015-5-15 22:03 编辑新手求教
一样的代码我运行出来就是这个结果。
9
8
8
9
-8
-9 pritf(“%d\n%d\n......”)把里面的\n去掉就能是你想要的结果。初学者别那么心急问别人为什么,这种问题很简单,自己多想想。 编译器自身的优化导致的, 换一个编译器就可能得到不同的结果, 这种天朝的题目毫无意义, 不用纠结这个, 如果你非想知道为什么, 可以进汇编看看, 一看就知道了。 本帖最后由 风茄 于 2015-5-14 13:53 编辑
ANDES 发表于 2015-5-13 17:43
pritf(“%d\n%d\n......”)把里面的\n去掉就能是你想要的结果。初学者别那么心急问别人为什么,这种问题 ...
这说法太奇葩了。换行符怎么会影响答案。
然后我重新理解了一下。你完全没有仔细看lz的问题好吗。 风茄 发表于 2015-5-14 13:51
这说法太奇葩了。换行符怎么会影响答案。
然后我重新理解了一下。你完全没有仔细看lz的问题好吗。
而且printf打成了pritf 风茄 发表于 2015-5-14 13:51
这说法太奇葩了。换行符怎么会影响答案。
然后我重新理解了一下。你完全没有仔细看lz的问题好吗。
理解正确, 我看错了。 翅膀团 发表于 2015-5-14 20:21
而且printf打成了pritf
呵呵,如果你纠结我这个printf打错了,好吧,你赢了。 没一个正确答案 不是可以去汇编下看看吗? 用汇编看就知道了 经过自己的几次试验,发现是编译器在操蛋。在printf() 中,里面的参数有几个时,不管是i++还是i--都跟i一样。
我突然在c++primer里看到答案了哈哈。
“不要在同一条语句对同一个值递增或递减多次,规则“使用后修改”和“修改后使用”可能会变得模糊不清。也就是说,在不同的系统上将生成不同的结果。对于这种语句,C++没有定义正确的行为。” C++Primer
页:
[1]