c++中++i与i++的区别是什么

如题所述

刚才看到一个问题,也是问这个差不多的问题,最佳答案居然是 int i=0;i+=; 居然是1我晕,明显语法错误,可是我没回答上他就关掉了,现在转到你这来。

一、i+=s;为自身加上等号后面的的值,例如
int i=5;
i+=10;//此时i=15 ,相当于i=i+10;

二、如果你想要使用自增1或自减1,则使用方式是i++;或i--;( 或++i和--i;)
例如
int i=5;
i++;//此时i=6
三、 i++;和++i的区别是,如果单独执和没明区别,如果与其它操作符一起执行,则有影响计算的前后次序,例如
例1: int i=1;
int b=++i; //此时会先将i自增1等于2,然后赋值给b,所以b=2

例2: int i=1;
int b=i++; //此时会先将i的值赋给b,然后i自增1,所以b的值是i没自增1的值,所以b=1
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-15
如果是单独的语句
i++;
++i;
是没有什么区别的,执行后都是增1.
但下面是有区别的
a = i++;
b = ++i;
前者,相当于 a = i;i++; 后者相当于 ++i; b=i;
也就是在这时候,i++是先使用i的值,再改变i的值。而++i是先改变i的值,然后再使用改变后的i值。
第2个回答  2011-09-15
++i是一个表达式,表达式的值是i+1,表达式过去后i的值也成了i+1
i++也是一个表达式,表达式的值是i,表达式过去后i的值成了i+1
第3个回答  2011-09-15
++i变量i和表达式同时增1
i++变量i增1,表达式为原值本回答被提问者采纳
第4个回答  2011-09-15
看到本书,说除了别人说过的区别外; i++需要编译器多分配一个副本作为变量
相似回答