首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

i++ and ++i的误会

2013-09-05 
i++ and ++i的误解不知在那本书上看到 i比i要快(i需要一个临时变量存储i的后再),就记住这个一直没测试,所

i++ and ++i的误解

不知在那本书上看到 ++i比i++要快(i++需要一个临时变量存储i的值后再++),就记住这个一直没测试,所以在写代码的时候 一直就使用++i觉得它快。今天测试了下发现并不是这么回事,一直被误解。所以写了简单的demo测试了下:

int a,c;a = 0;00181B88  mov         dword ptr [a],0  a++;00181B92  mov         eax,dword ptr [a]  00181B98  add         eax,1  00181B9B  mov         dword ptr [a],eax  ++a;00181BA1  mov         eax,dword ptr [a]  00181BA7  add         eax,1  00181BAA  mov         dword ptr [a],eax  c =a++;00181BB0  mov         eax,dword ptr [a]  00181BB6  mov         dword ptr [c],eax  00181BBC  mov         ecx,dword ptr [a]  00181BC2  add         ecx,1  00181BC5  mov         dword ptr [a],ecx  c = ++a;00181BCB  mov         eax,dword ptr [a]  00181BD1  add         eax,1  00181BD4  mov         dword ptr [a],eax  00181BDA  mov         ecx,dword ptr [a]  00181BE0  mov         dword ptr [c],ecx  c = a+1;00181BE6  mov         eax,dword ptr [a]  00181BEC  add         eax,1  00181BEF  mov         dword ptr [c],eareturn 0;00181BF5  xor         eax,eax  }

一看就明白了

2楼JohnPhan2013-05-03 22:07
c = a + 1 n这样的结果。匪夷所思。
1楼v2abcd2013-05-03 13:46
内置类型是无区别n你试试自定义个Point再看看?再来个复杂点的迭代器?当然操作符定义要符合原意。n就像你不能说”我和你都是男人,所以我们是同一个人“一样,这样片面的结果,不能证明什么

热点排行