int i = 0; int j = i++ + ++i; int k = --i + i--;k为什么等于2
3个回答
展开全部
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
其实
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
其实
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询