b=10 ;
a=(b--)+(--b)+(++b) ;
这是一个普通的算式 倘若我们去计算 a最后的值为30 b为9 但是用shell编译器和Devc++编译后的结果都为27
查看了具体过程 机器的运算过程是从左往右依次计算 而我们实际的计算是从右往左 这难免会使运算的顺序和结果出
现不同 也就是编译器基层设置的问题 虽找到每一个步骤的汇编代码 但是看不懂 所以希望大家给点帮助
本文探讨了一段特定的算术表达式在不同编译环境下得到的不同结果,特别是shell编译器和Devc++之间的差异。通过分析,揭示了机器从左到右的计算顺序与直观计算顺序的不同,以及这种差异如何导致最终结果的变化。
b=10 ;
a=(b--)+(--b)+(++b) ;
这是一个普通的算式 倘若我们去计算 a最后的值为30 b为9 但是用shell编译器和Devc++编译后的结果都为27
查看了具体过程 机器的运算过程是从左往右依次计算 而我们实际的计算是从右往左 这难免会使运算的顺序和结果出
现不同 也就是编译器基层设置的问题 虽找到每一个步骤的汇编代码 但是看不懂 所以希望大家给点帮助
1万+

被折叠的 条评论
为什么被折叠?