理解i++和++i
i++和++i是C/C++基础知识,i++是先传值后自增,++i是先自增后传值。汇编源码如下:
int xx;
int x = 1;
00F61702 mov dword ptr [x],1
xx = x++;
00F61709 mov eax,dword ptr [x] //将x值保存到eax
00F6170C mov dword ptr [xx],eax //eax赋值给xx
00F6170F mov ecx,dword ptr [x] //将x值保存到ecx
00F61712 add ecx,1 //ecx加1
00F61715 mov dword ptr [x],ecx //ecx赋值给x
int z = 2;
00F61718 mov dword ptr [z],2
xx = ++z;
00F6171F mov eax,dword ptr [z] //将z值保存到eax
00F61722 add eax,1 //eax加1
00F61725 mov dword ptr [z],eax //eax赋值给z
00F61728 mov ecx,dword ptr [z] //z传值给ecx
00F6172B mov dword ptr [xx],ecx //ecx传值给xx