早教吧作业答案频道 -->其他-->
c++中,i+++j表达式中的+如何拆分?它们的拆分规则是如何定义的?
题目详情
c++中,i+++j表达式中的+如何拆分?
它们的拆分规则是如何定义的?
它们的拆分规则是如何定义的?
▼优质解答
答案和解析
一楼说的是对的.根据具体编译器有所不同!而不是理论上的(i++)+j这种样子.
实际中,首先要避免这种情况发生,自己加上个括号,多按两个键死不了!另外,如果想自己验证到底是怎么个执行顺序,最简单有效的办法就是反汇编.
在Visual C++ 2008中,反汇编结果如下:
sum = i+++j;
00BE13A3 mov eax,dword ptr [i]
00BE13A6 add eax,dword ptr [j]
00BE13A9 mov dword ptr [sum],eax
00BE13AC mov ecx,dword ptr [i]
00BE13AF add ecx,1
00BE13B2 mov dword ptr [i],ecx
于是一下子就看出来,先做的操作是i+j,然后是i++.也就是Visual C++编译器解释它为:(i++)+j.
实际中,首先要避免这种情况发生,自己加上个括号,多按两个键死不了!另外,如果想自己验证到底是怎么个执行顺序,最简单有效的办法就是反汇编.
在Visual C++ 2008中,反汇编结果如下:
sum = i+++j;
00BE13A3 mov eax,dword ptr [i]
00BE13A6 add eax,dword ptr [j]
00BE13A9 mov dword ptr [sum],eax
00BE13AC mov ecx,dword ptr [i]
00BE13AF add ecx,1
00BE13B2 mov dword ptr [i],ecx
于是一下子就看出来,先做的操作是i+j,然后是i++.也就是Visual C++编译器解释它为:(i++)+j.
看了 c++中,i+++j表达式中...的网友还看了以下:
3Dmax2009(中文)如何拆分,例如我一个整体正方形,如何拆分成6个平面(以个体形式存在) 2020-05-13 …
镜面魔方如何拆分重组 2020-05-17 …
英语单词destiny命运如何拆分理解? 2020-06-05 …
法语初级问题001请问Est-cequ'ilestartist?这句话的语法结构如何拆分助于、系词 2020-06-07 …
c++中,i+++j表达式中的+如何拆分?它们的拆分规则是如何定义的? 2020-06-27 …
把16拆成若干个自然数的和,再求这些数的积,要使得到的积最大,应该把16如何拆分?这个积最大是多少 2020-07-01 …
温度如何等分?摄氏温标是把水的冰点和沸点一百等分,作为1度.请问温度如何等分,它又不像线段那样.如 2020-08-02 …
EXCEL07如何拆分数值如何把1个数值拆成随机的5个数值,每个数都在平均数附近浮动,例如100,拆 2020-11-01 …
把19拆成若干个自然数的和,要求这些自然数的乘积最大,如何拆分? 2020-11-08 …
“兰”字作为形声字如何拆分?何为形旁,哪为声旁? 2020-12-25 …