bool a = ++x * x > 3;这行表达式有人能解释一下,是绝对正确的么?

来源:2-22 C#的运算符优先级

慕无忌7395479

2017-04-29 15:07

C++编译器并没有规定++运算符的求值顺序,我觉得C#应该也是如此,所以 bool a = ++x * x > 3;这行表达式有人能解释一下,是绝对正确的么?有没有人查过标准。

写回答 关注

3回答

  • 一念征途
    2017-06-23 23:26:49
    已采纳

    http://img.mukewang.com/594d331f000117e103850474.jpg因为上面的式子没有括号,那就先运行一元运算符++x,即x+1,然后是 乘除的优先级比较高,那就接着运行乘法*,即(x+1)*x ,然后 得到的值 与3相比较,判断是否正确,把返回的bool值赋值给了bool a 。祝你学习顺利!

    慕无忌739...

    我是C++程序员,在这里还是要科普一下C++的知识,C++里面可千万别这么想,C++标准没有规定表达式必须从左到右求值。

    2017-07-22 23:37:09

    共 1 条回复 >

  • 慕先生3255610
    2020-10-30 20:25:33

    阿斯顿撒打算大所多

  • 风涯岚月
    2017-05-01 20:24:51

    首先C#教科书是规定了++运算符的,学一门学问还是以教科书为准,不要以自己的经验,况且还是一门软件语言。其次,这个表达式没有问题,如果赋值x=1,那么++x*x=4,显然是先计算的++x,x自增1,因为是前置递增,所以++x=2,计算后的变量x也等于2。那么a为TRUE.你自己可以在软件中测试。

    HUBang...

    受教了

    2022-01-27 16:23:15

    共 4 条回复 >

C#开发轻松入门

本门课程是C#语言的入门教程,将带你轻松入门.NET开发

254118 学习 · 1459 问题

查看课程

相似问题