int ie = 2;
if (ie-- > 2) { std::cout << "ie-- "; }
std::cout << ie << std::endl;
程序运行结果
1
进行 ie-- 操作时,有两个步骤。步骤一:将 ie 的值放入一个内存单元 步骤二:将 ie 的值减一。
在 if 语句中与2比较时,与之比较的是步骤一中内存单元的值。
int ie = 2;
00247C83 mov dword ptr [ie],2
if (ie-- > 2) { std::cout << "ie-- "; }
00247C8A mov eax,dword ptr [ie]
00247C8D mov dword ptr [ebp-130h],eax
00247C93 mov ecx,dword ptr [ie]
00247C96 sub ecx,1
00247C99 mov dword ptr [ie],ecx
00247C9C cmp dword ptr [ebp-130h],2 ...