i++和++i的区别

 我来答
NoGainNoGain
2018-03-30 · TA获得超过1.2万个赞
知道小有建树答主
回答量:63
采纳率:100%
帮助的人:1.8万
展开全部
  1. a = ++i,相当于 i=i+1; a = i;

  2. a = i++,相当于 a = i; i=i+1;       

如果有表达式 a = i++  它等价于 a = i ; i = i + 1;

如果有表达式 a = ++i  它等价于   i = i + 1; a = i;

1 首先两者的区别是:前者是先赋值,然后再自增;后者是先自增,后赋值

2 ++i和i++都是分两步完成的。因为++i 是后面一步才赋值的,所以它能够当作一个变量进行级联赋值,++i = a =b,即 ++i 是一个左值;i++ 的后面一步是自增,不是左值。

3  ++i 和i++ 的使用,一般来说在循环域里面,这两者并没有什么很大的区别,因为编译器一般都会给你做优化。但是要注意其生存周期,以及很难察觉的写脏,就好像指针delete以后一定要赋予0一样,我们要注意i值在程序流中的变化。

我不知道bd
推荐于2017-12-16 · TA获得超过2.1万个赞
知道大有可为答主
回答量:6825
采纳率:50%
帮助的人:7210万
展开全部
简单地说,都是I自加1。区别是,I++是执行完后面的语句才加1;而++I就先做I+1才执行后面的语句。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ziguowen
2008-12-06 · TA获得超过2723个赞
知道小有建树答主
回答量:785
采纳率:35%
帮助的人:347万
展开全部
关于自增自减运算,很多书籍没有把问题讲清楚,在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%
帮助的人:298万
展开全部
++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;
(注:自增自减速运算只能对变量进行,常量和表达式不能进行该运算)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浅源深科
2020-04-27 · 天天实习,轻松动手学好Java,顺利进入职场
浅源深科
向TA提问
展开全部
++ i 是先 ++ 再输出,i ++ 是先输出再 ++ ,两者的执行顺序要搞清楚
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式