在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
分析
此代码块中
- i原来是等于1,x原来是等于1
- 此时把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;
分析
此代码块中
- i原来是等于1,x原来是等于1
- 此时把i先自增,1+1即为2,然后再把i的值(2)赋值给了x,此代码形如
i++;//x不变,i+1,即为2
x=i;//x变成了i的数值:2 - 输出这两个数据,此时,数据即为上面代码块所示
全文完:)