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

例如a=++1b=j++... 例如

a=++1
b=j++
展开
 我来答
写在枫叶上的故事
2018-12-20 · TA获得超过2.6万个赞
知道答主
回答量:164
采纳率:0%
帮助的人:2.4万
展开全部

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。

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

ziguowen
推荐于2017-09-23 · TA获得超过2723个赞
知道小有建树答主
回答量:785
采纳率:35%
帮助的人:343万
展开全部
关于自增自减运算,很多书籍没有把问题讲清楚,在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也是一样的道理。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lytttttt
2008-12-06 · TA获得超过384个赞
知道小有建树答主
回答量:286
采纳率:0%
帮助的人:296万
展开全部
++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;
(注:自增自减速运算只能对变量进行,常量和表达式不能进行该运算)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
希声和寡
2008-12-06 · TA获得超过2.6万个赞
知道大有可为答主
回答量:6437
采纳率:0%
帮助的人:3433万
展开全部
++i: 先进行自增动作,再参与后续处理
i++:先参与处理,再进行自增动作

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

b=j++;
运行步骤如下:
b = j;
j = j + 1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
皇甫正信前彦
2019-09-24 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:34%
帮助的人:581万
展开全部
程序中单独把
i++;
或者
++i;
作为一条语句时,两个是没有区别的。
但要是和其它式子一起进行复合运算,通常会包含两种操作,比如:
a=i++;

a=++i;
这两个式子的不同点就是:第一个式子会先把i的值赋给a,然后再自身加1
,即等价于
a=i;
i=i+1;。第二个式子正好相反,先进行自身加1操作,再把加1
后的值赋给a,
即等价于
i=i+1;a=i;
.
望采纳!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(33)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式