i++与++i的区别

如果有表达式 a = i++  它等价于 a = i ; i = i + 1;

如果有表达式 a = ++i  它等价于   i = i + 1; a = i;

  1. 首先两者的区别是:前者是先赋值,然后再自增;后者是先自增,后赋值;
  2. ++i和i++都是分两步完成的。因为++i 是后面一步才赋值的,所以它能够当作一个变量进行级联赋值,++i = a =b;
  3. ++i 和i++ 的使用,一般来说在循环域里面,这两者并没有什么很大的区别,因为编译器一般都会给你做优化。但是要注意其生存周期,以及很难察觉的写脏,就好像指针delete以后一定要赋予0一样,我们要注意i值在程序流中的变化;
posted @ 2015-11-14 13:20  永八戒  阅读(501)  评论(1编辑  收藏  举报