首先使用哪个运算符? 我刚刚在我的C++课上做了一个测试,其中一个我错了的问题是:
请看下面的陈述。 而(x++<10) 首先使用哪个运算符首先使用哪个运算符? 我刚刚在我的C++课上做了一个测试,其中一个我错了的问题是:,c++,operators,C++,Operators,请看下面的陈述。 而(x++ 3个一元数!++--*& 4乘、除、模*/% 5加、减+- 6向右、向左>>这是优先顺序 1 Parenthesis () [] 2 Structure Access . -> 3 Unary ! ++ -- * & 4 Multiply,Divide,Modulus * / % 5 Add,Subtract
我的答案是+,但是测试告诉我你是对的<代码>运算符+++的优先级高于
运算符你说得对operator++
的优先级高于operator我怀疑这是因为x++
是后增量。所以你可以说它先把x和10比较,然后再把一和x相加
如果是++x
,那么应该先进行添加
我认为这是一个有点诡计的问题,因为就运算符优先级而言,++
的优先级高于,我怀疑这是因为x++
是一个后增量。所以你可以说它先把x和10比较,然后再把一和x相加
如果是++x
,那么应该先进行添加
我认为这是一个有点诡计的问题,因为就运算符优先级而言,++
的优先级高于当x
是一种带有用户定义后缀operator++
的类型时,则必须首先计算++
对于内置类型的x
,我不确定是否可以对订购说些什么。如果x
是一种带有用户定义后缀运算符+
的类型,则必须首先评估++
对于内置类型的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 .
1括号()[]
2结构访问。->
3个一元数!++--*&
4乘、除、模*/%
5加、减+-
6向右、向左>><=>这是优先顺序
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 .
1括号()[]
2结构访问。->
3个一元数!++--*&
4乘、除、模*/%
5加、减+-
6向右、向左移动>><=>这是一个措辞糟糕的问题;先用是什么意思?表达式x++
的值计算将首先进行,但其副作用(增加x
的值)的应用将在计算x<10
运算符+++
后进行,这意味着增加并返回以前的值。这是一个单独的操作,其优先级高于运算符。它实际上并不重要。计算x的值,然后将该值与10进行比较,并以基本上无关紧要的顺序递增x。如果x出现在RHS上,这将是重要的,因为有两件事:运算符优先级和求值顺序。没有什么是“先用”的,因为“简单”这个词不存在,这是一个措辞糟糕的问题;先用是什么意思?表达式x++
的值计算将首先进行,但其副作用(增加x
的值)的应用将在计算x<10
运算符+++
后进行,这意味着增加并返回以前的值。这是一个单独的操作,其优先级高于运算符。它实际上并不重要。计算x的值,然后将该值与10进行比较,并以基本上无关紧要的顺序递增x。如果x出现在RHS上,这将是重要的,因为有两件事:运算符优先级和求值顺序。没有什么是“先用”的,因为这个词的定义并不简单exist@Cheersandhth.-Alf是否足够?请注意,(有效)运算符优先级不会告诉您求值顺序。尤其是函数参数的求值顺序未指定,即使函数调用用作另一个调用的实际参数,f(a1,a2,g(a3,a4))
。这里您可以说的是a3
和a4
必须在调用g
之前进行计算,这必须发生在调用f
之前,但是a1
和a2
可以在调用g
之前或之后进行计算。对于内置类型的后缀x++
,No所需的一切。内置操作符不是原子整体。Postfix++有两种不同的效果:生成原始值和修改。该标准说,“在修改操作数对象之前,++表达式的值计算是按顺序排列的”,但这就是我所看到的。没有任何关于修改顺序的信息。事实上,该标准进一步指出,“对于不确定顺序的函数调用,postfix++的操作是一个单独的计算”,也就是说,这在一般情况下是不能保证的。这取决于模糊问题中“使用”的实际含义。postfix++表达式的值是在比较之前计算出来的,但副作用可能是,也可能不是。@cheers-sandhth.-Alf是否足够?请注意,(有效)运算符优先级不会告诉您计算顺序。尤其是函数参数的求值顺序未指定,即使函数调用用作另一个调用的实际参数,f(a1,a2,g(a3,a4))
。这里您可以说的是a3
和a4
必须在调用g
之前进行计算,这必须发生在调用f
之前,但是a1
和a2
可以在调用g
之前或之后进行计算。对于内置类型的后缀x++
,No所需的一切。内置操作符不是原子整体。Postfix++有两种不同的效果:生成原始值和修改。该标准规定“计算