在C/C++中有一个很坑的东西,其实每一本教材上都有写,但是很容易将他忘记了。

什么是i++

i++大家应该不太陌生,就是自增,把i自增1
即:

int i=1; i++; cout<<i; //此时输出1

但是他们之间最大的区别在于赋值的先后顺序
i++先赋值,再自增

int x,i=1; x=i++; cout<<x<<"\t"<<i; //此时输出为1 2

分析

此代码块中

  1. i原来是等于1,x原来是等于1
  2. 此时把i的值赋值给了x,x为1,i自增,i为1+1即2,此代码形如
x=i;  
i++;  

3.输出这两个数据

什么是++i

++i在单独出现(大多数这些自增用在循环语句中出现)的时候不能反映该问题,也就是有些人从书上抄一段循环语句带有i++和++i找不到任何区别的原因。
同样献给一个例子

int x,i=1;  
x=++i;  
cout<<x<<"\t"<<i;  

分析

此代码块中

  1. i原来是等于1,x原来是等于1
  2. 此时把i先自增,1+1即为2,然后再把i的值(2)赋值给了x,此代码形如

    i++;//x不变,i+1,即为2
    x=i;//x变成了i的数值:2

  3. 输出这两个数据,此时,数据即为上面代码块所示

全文完:)


Hope to be a free geek forever.