永发信息网

问个很简单很简单的题,C语言

答案:3  悬赏:50  手机版
解决时间 2021-05-08 07:42

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

 

最后两个,能讲解下么?

最佳答案

main()


{


   int i=8;   


    printf(“%d\n”,++i); //++i就是将i取出+1再显示,此时i=9


    printf(“%d\n”,--i); //--i一样先-1再显示,此时i=8;


    printf(“%d\n”, i++);//i++先显示i的值(i=8),再操作i-1,i的值改变为9


    printf(“%d\n”,i--);//先显示i=9;再操作i -1,i=8


    printf(“%d\n”,- i++);//-号就是取负的操作,和i有关的,显示-8后,i+1=9;


    printf(“%d\n”,-i--);//取负-i=-9,然后执行i--


}

全部回答
  • 1楼网友:老鼠爱大米
  • 2021-05-07 13:38

负号运算符(-)和自增(++)、自减(--)运算符都属于一元运算符,

在C语言中一元运算符的结合方向是:右结合,也就是同一级运算符,从右向左结合。

所以题目中“-i--”可以看成“-(i--)”,结果自然是-8,下面一个语句同理。

参考资料:C语言符号优先级

http://wenku.baidu.com/view/044cc58a6529647d27285242.html

希望对你有帮助   O(∩_∩)O~

  • 2楼网友:归鹤鸣
  • 2021-05-07 13:24
负号的优先级大于自加或自减,因此当输出第四的语句后i=8,当运行到第五语句时i区负号输出-8,这时候i自加等于9,第五条语句类似输出-9
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯