C语言中++i 和i++有啥区别啊?

例如

a=++1
b=j++

i++和++i都是c语言里的自增,但是它们自增的顺序不同。++i表示,i自增1后再参与其它运算,而i++ 则是i参与运算后,i的值再自增1。

for循环里循环变量增值用i++,而不用++i是因为在循环结构里需要循环变量来结束循环,而使用i++则会导致本来应该继续的循环少执行一次,所以循环结构里通常都是循环变量在一次循环结构执行完成之后再自增。

扩展资料

i++和++i前置后置区别的例子:

1、a = i++;

相当于 a = i; i++;

2、a = ++i;

相当于 i++; a = i;

3、int i=3;

int j=4;

int a = i++;

int b = ++j;

printf("%d, %d\n", a, b);

结果是3,5。++前置:i自增1后再参与其它运算;++后置:i参与运算后,i的值再自增1”。很明显,a = i++;由于是先执行赋值运算,再自增,所以结果是a=3,i=4;而b = ++j。

参考资料来源百度百科——自增自减运算符

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-23
关于自增自减运算,很多书籍没有把问题讲清楚,在C语言里是这样的:

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

如:int k=5,b=0;
b=k++;的意思就是,先算b=k(即b=5),遇到分号;表示语句结束,k才自加1,即k变为6。

2.前置运算:++k表示先自加,后运算
这个意思就是遇到++k了,先把k的值加了1,再往后执行别的。

如:int k=5,b=0;
b=++k;的意思就是,先把k自加1,即k为6,再算b=k(即b=6)。

掌握好这两点,k--和--k也是一样的道理。本回答被提问者采纳
第2个回答  2008-12-06
++i是在进行运算之前使i自增1,再用增后的值进行运算
i++是在进行运算之后才使i增1,使用原值进行运算一次后,再使i自增1
你运行一下这个再体会体会就明白了:
i=1;j=1;k=1;t=1;
m1=i++ + i++;
m2=++j + ++j;
m3=k++ + ++k;
m4=++t + ++t;
(注:自增自减速运算只能对变量进行,常量和表达式不能进行该运算)
第3个回答  2008-12-06
++i: 先进行自增动作,再参与后续处理
i++:先参与处理,再进行自增动作

a=++1:
这个语句是不对的,常量不能进行++,--操作
如果是a=++i的话:
运行步骤如下:
i = i + 1;
a = i;

b=j++;
运行步骤如下:
b = j;
j = j + 1;
第4个回答  2019-09-24
程序中单独把
i++;
或者
++i;
作为一条语句时,两个是没有区别的。
但要是和其它式子一起进行复合运算,通常会包含两种操作,比如:
a=i++;

a=++i;
这两个式子的不同点就是:第一个式子会先把i的值赋给a,然后再自身加1
,即等价于
a=i;
i=i+1;。第二个式子正好相反,先进行自身加1操作,再把加1
后的值赋给a,
即等价于
i=i+1;a=i;
.
望采纳!!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网