谁能详细的给我讲一下i++,++i,i--,--i的区别阿

来源:百度知道 编辑:UC知道 时间:2024/05/13 14:03:07
最好能举个例子

1.后置运算:i++表示先运算,后自加。
意思是遇到i++了,我先把当前的k的值拿来参加运算,后面再去管它的自加。
那么,【“后面”后到什么程度呢?要后到当前的语句执行完,即遇到分号;表示
语句执行完了,所以i才自加1。】
如:int i=5,b=0;
b=i++;的意思就是,先算b=i(即b=5),遇到分号;表示语句结束,i才自加1,即i变为6。

2.前置运算:++i表示先自加,后运算
这个意思就是遇到++i了,先把k的值加了1,再往后执行别的。
如:int i=5,b=0;
b=++i;的意思就是,先把i自加1,即i为6,再算b=i(即b=6)。

掌握好这两点,i--和--i也是一样的道理。

i++,i--:用了i,再把i重新赋值~假如,i=1;a=i++,那么现在的a是1,而i值变为了2,如果是a=i--的话,那么a还是1,但i变成了0;
++i,--i:就是刚好相反,先把i赋了值再用i~假如,i=1;a=++i,那么现在的a是2,i也是2,要是a=--i的话,现在的a就是0,i也是0;

i=5;
b=i++;
执行过后b=5,i=6
i=5;
b=++i;
执行过后b=6,i=6

就是说i++先执行语句,再自增
++i先自增,再执行语句

i--,--i同理

对i++,i--,++i,--i的易解,在此举一例子详解:
main( )
{
int x,y,z;
x=y=2;z=3;
y=x++-1;printf("%d\t%d\t",x,y); /*x=3,y=1,后置++,先把x赋值给y,再做运算,而x的值无论是前还是后置都加1*/
y=++x-1;printf("%d\t%d\t",x,y);/*x=4,y=3,前置++,先把x加1后赋值给y,然后做运算(此行x初值是上行的终值=3)*/
y=z--+1;printf(