i++和++i的本质区别

int a = ++i;
8B 45 F8 mov eax,dword ptr [i]
83 C0 01 add eax,1
89 45 F8 mov dword ptr [i],eax
8B 4D F8 mov ecx,dword ptr [i]
89 4D EC mov dword ptr [a],ecx

int a = i++;
8B 45 F8 mov eax,dword ptr [i]
89 45 EC mov dword ptr [a],eax
8B 4D F8 mov ecx,dword ptr [i]
83 C1 01 add ecx,1
89 4D F8 mov dword ptr [i],ecx

 

 1 int a=10;
 2 int b = ++a +5;
 3 // 等价于
 4 /*
 5     a += 1;
 6     int b = a+5;
 7 */
 8 int c = a++ +5;
 9 // 等价于
10 /*
11     int b = a+5;
12     a += 1;
13 */

 

posted @ 2020-02-10 22:12  PrimaBruceXu  阅读(176)  评论(0编辑  收藏  举报