int i = 0; int j = i++ + ++i; int k = --i + i--;k为什么等于2
答案:4 悬赏:30 手机版
解决时间 2021-02-17 20:16
- 提问者网友:椧運幽默
- 2021-02-17 10:05
int i = 0; int j = i++ + ++i; int k = --i + i--;k为什么等于2
最佳答案
- 五星知识达人网友:煞尾
- 2021-02-17 10:47
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
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
全部回答
- 1楼网友:洒脱疯子
- 2021-02-17 13:33
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
- 2楼网友:鱼忧
- 2021-02-17 12:47
有关,k的值是根据内层循环变化的.当i=0时,内层循环结束时,k=1 也就是说,外层每循环一次内层循环中的 k 会加1
- 3楼网友:孤独入客枕
- 2021-02-17 12:07
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
其实
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯