永发信息网

关于C语言的一道题

答案:3  悬赏:40  手机版
解决时间 2021-08-14 13:58
  • 提问者网友:我的未来我做主
  • 2021-08-13 17:06

main(){

  int i=8;

  printf("%d\n",++i);

  printf("%d\n",--i);

  printf("%d\n",i++);

  printf("%d\n",i--);

  printf("%d\n",-i++);

  printf("%d\n",-i--);

 } 

 

 

希望有朋友帮我解答一下。为什么

结果为9,8,8,9,-8,-9

 

最佳答案
  • 五星知识达人网友:廢物販賣機
  • 2021-08-13 18:21

第一个输出:++i,先加1,然后输出,为i=8+1=9;


第二个输出:--i,先减1,然后输出,为i=9-1=8;


第三个输出:i++,先输出i的当前值8,然后加1,此时i=8+1=9;


第四个输出:i--,先输出i的当前值9,然后减1,此时i=9-1=8;


第五个、第六个的情况和第三个、第四个类似,不同的只是输出多了一个负号。


全部回答
  • 1楼网友:举杯邀酒敬孤独
  • 2021-08-13 19:53

++i在使用之前+1,i++在使用后+1, 反之-也一样。

如题:++i ,提前+1,所以输出9,i==9;

--i同理,i==8;

i++,使用后再加1;i==8;

i--,此时,上面的原因 i自加1,所以i==9;

到这想必明白了。

  • 2楼网友:醉吻情书
  • 2021-08-13 18:39

前缀和后缀的问题

前缀是先加后运算,后缀是先运算后加

要注意每次的输出i都是在变

printf("%d\n",++i);    //先加再运算 所以打出的结果是9

printf("%d\n",--i);;    //先减再运算 所以打出的结果是8

printf("%d\n",i++);    //先运算再加,所以打出的结果是8 (实际上i已经变成9了)

后面的一样的道理

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯