以下程序的输出是多少:
#include<iostream>
int main()
{
int a = 4;
a += a * a << 1 + 2;
std::cout<<a<<std::endl;
return 0;
}
解答输出是132.将代码转换成反汇编模式:
将变量 a 的值加载到 EAX 寄存器中(EAX的值为4)
将 EAX 寄存器的值与变量 a 的值相乘,结果保存在 EAX 寄存器中(所以EAX的值为16)
将变量 a 的值加载到 ECX 寄存器中(a仍旧为4)
(ECX + EAX * 8) 并把结果放在 EDX 寄存器中
将寄存器中的值存到a中,所以啊= 4+128=132