永发信息网

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
全部回答
  • 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 其实
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯