int i = 0; int j = i++ + ++i; int k = --i + i--;k为什么等于2

 我来答
cs903016
2017-06-14 · TA获得超过1179个赞
知道小有建树答主
回答量:2599
采纳率:80%
帮助的人:1735万
展开全部
int i= 0;初始化i并赋值为0;
int j = i++ + ++i;i++表示先用在++;++i表示先++在使用;故i++为0,使用完后变为1,++i为在1的基础上++,故++i为2;j=0+2;
int k = --i + i--;一样的--i,先--在使用,i--先使用后--;故--i为2的基础上先减1;i--是先使用在--;所以i--为1,使用过后在减1;故k=1+1,而这时候的i为0
百度网友ad04829
2017-06-14 · TA获得超过1186个赞
知道小有建树答主
回答量:786
采纳率:68%
帮助的人:209万
展开全部
int i = 0; 
int j = i++ + ++i;   
从右边开始看, (++i) = 1 -> i = 1,    (i++) = 1 -> i = 2,   j = 1+1=2
int k = --i + i--; 
从右边开始看,(i--) = 2 -> i = 1,  (--i) = 0 -> i=0,   k = 0+2=2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-06-14
展开全部
i = 0
i++后i=1
++i后i=1
区别在于两者参与运算的时候 前者是先引用i(++前的值)再++ 后者是先做++ 再引用++后的值
就拿j=i++ + ++i 来说 其实 j = 0(++前) + 2 (++后)
不管j是多少,i现在已经成了2
-- 跟 ++是一样的
--i 就是 先对当前的i 作自减 2-- = 1
当前的i 已经变成了1
然后i -- ,这里先引用了当前的i 还是1
那么1+1 =2
其实
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式