首页 > 代码库 > "i++"和"++i"

"i++"和"++i"

转自:race604

http://blog.csdn.net/race604/article/details/6807992

1 功能区别

简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。
而 a = ++i,相当于 i=i+1; a = i;先执行增1操作,再做表达式运算;
而 a = i++,相当于 a = i; i=i+1;先执行表达式操作,再做增1操作;

例如:
  1. int   i   =   7;   
  2. printf( "%d\n ",   --i   *   ++i); // 结果为49  
int   i   =   7; printf( "%d\n ",   --i   *   ++i); // 结果为49
相当于:
  1. --i;  
  2. ++i;  
  3. i*i;  
--i;++i;i*i;
结果自然为49;

2 效率差别

i++的工作过程是这样的:用一个临时变量temp存放i的值,然后i增一,返回temp
++i的工作过程是这样的:i增一,返回i的引用
因此++i没有创建其他对象,从理论上讲,++i的速度要比i++要快
--也是一样的.