首先使用哪个运算符

Which operator is used first?

本文关键字:运算符      更新时间:2023-10-16

我刚刚在c++课上做了一个测试,我做错的一个问题是:

看下面的陈述。而(x++<10)首先使用哪个运算符?

我的答案是++,但测试告诉我它实际上是<。有人能解释一下为什么会这样吗?

你说得对。CCD_ 1具有比CCD_ 2更高的优先级。

C++运算符优先级

因此,在这种情况下,将首先调用operator++,然后返回原始值(在增量之前),该值将用于比较。

实时

我怀疑这是因为x++是后增量。所以你可以说,它首先将x与10进行比较,然后将x与相加

如果是++x,那么添加将首先完成。

我认为这是一个有点技巧的问题,因为就运算符优先级而言,++的优先级高于<

x是具有用户定义后缀operator++的类型时,必须首先评估operator++0。

对于内置类型的x,我不确定是否可以对订购进行说明。

这是优先级顺序。

1  Parenthesis                    () []
2  Structure Access               .  ->
3  Unary                          ! ++ -- * &
4  Multiply,Divide,Modulus        * / %
5  Add,Subtract                   + -
6  Shift Right,Left               >> <<
7  Greater,Less than etc          > < => <=
8  Equal , Not Equal              ==  !=
9  Bitwise AND                    &
10 Bitwise OR                     |
11 Logical AND                    &&
12 Logical OR                     ||
13 Conditional Expression         ? :
14 Assignment                     = += -= etc
15 comma                          .