int a =1;
int c =a++;
a=1;
int d=++a;
c 等于1,d等于2。
这就是这两个东西在C/C++语言上面的区别。
之所以写这个,是我一直都听说的什么++a要快点,我也一直信着,直到有一天为什么快?
然后就写了代码,查看了汇编代码,发现汇编代码确实有区别
a++使用的是leal,++a使用的是movel,都是一条指令,都是一条指令!!
(更准确的说++a最后赋值的时候还多了一条movl指令)
一条指令的执行时间不一样吗?我不懂硬件设计,不敢妄下结论,但是我认为是没有区别的。
贴下源码和汇编代码,大家评论区各抒己见: