++运算符 前置、后置 对应的汇编语言,了解整个内部过程

来源:互联网 发布:优才创智科技公司 知乎 编辑:程序博客网 时间:2024/05/16 05:23
 a = b = ++c + (d++);


◆ 前缀运算符在所有计算之前进行,后缀运算符则在(所有)赋值之后进行。


  这是因为整个表达式中赋值运算符优先级是最低的,因此该运算符代表的全部操作完成后,整个表达式也就差不多运算结束了,故我们可以这样记忆:


◆ 前缀运算符最先算,后缀运算符最后算。


对应的汇编代码:

0041417A  mov        eax,dword ptr [c]

0041417D  add         eax,1

00414180  mov         dword ptr [c],eax

00414183  mov         ecx,dword ptr [c]

00414186  add         ecx,dword ptr [d]

00414189  mov         dword ptr [b],ecx

0041418C  mov        edx,dword ptr [b]

0041418F  mov        dword ptr [a],edx

00414192  mov         eax,dword ptr [d]

00414195  add         eax,1

00414198  mov         dword ptr [d],eax

(d++) ,括号对后缀运算符没有影响,仍然是最后计算。。


原创粉丝点击