首先使用哪个运算符?

时间:2015-06-30 03:51:37

标签: c++ operators

我刚刚在我的c ++课程中进行了测试,其中一个问题我得错了:

  

请看以下声明。   而(x ++ <10)   首先使用哪个运算符?

我的答案是++然而,测试告诉我它实际上是&lt;。有人可以解释为什么会这样吗?

4 个答案:

答案 0 :(得分:4)

你是对的。 override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { var touch: UITouch = touches.first as! UITouch var location = touch.locationInNode(self) var node = self.nodeAtPoint(location) if node.name == "unlockleveltwobuttonNow" { callthis() for product in list { var prodID = product.productIdentifier if(prodID == "unlockLevelTwo") { p = product buyProduct() break; } } runAction(menuAudioPlayer) } 的优先级高于operator++

C++ Operator Precedence

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

LIVE

答案 1 :(得分:2)

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

如果它是++x那么首先要完成添加。

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

答案 2 :(得分:2)

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

对于内置类型的x,我不确定是否可以说明排序。

答案 3 :(得分:0)

这是优先顺序。

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                          .