问答详情
源自:2-22 C#的运算符优先级

关于++x的一些小问题?

我在2-22章节中做到了这个题(前面的无关代码省去了):int x=1;

bool a =++x*x >3;  运算符的优先级不是一元运算符高于乘除取余吗?

那我算出的 bool a =++x*x>3 应该是false吧?因为++x的优先级大于x*x 所以我算的是2*1>3 得出了false得结果。但是我在评论中看到同学们算的结果是 bool a = ++x*x>3 得出的结果是4 true 请问是我在哪里的计算或理解出了问题吗?

提问者:牛奶咖啡16 2017-10-07 11:58

个回答

  • 小俏妞
    2019-06-15 18:30:21

     我 也是有这个 疑问.。。但是有些是不变的 ,分不清楚,不变的是常量

  • 酷到死
    2018-10-29 16:06:44

    666


  • 一颗路边的小石头
    2018-06-27 18:44:59

    你的分析是对的,先计算++x,但是x是值类型,简单说,只要你在某一个地方修改它的值,以后用它的时候都是修改后的那个值

  • 牛奶咖啡16
    2017-10-07 12:03:00

    哦不好意思刚刚才发现有相似的提问并且我也在其中找到了解决问题的答案:++x先运行即 x+1=2;随后后面x*x的变量x也变为了2,所以 2*2>3是true