是c+中的赋值运算符+;返回右值还是左值? C++中赋值操作符返回rValor还是LValk?如果是左值,这两个参数中哪一个会在这里递增 (a = b)++
它返回一个左值。根据§5.17: 赋值运算符(=)和复合赋值运算符 从右向左分组都需要一个可修改的左值作为其左值 并返回引用左操作数的左值 若这些对象有一个用于赋值的用户定义运算符,那个么它取决于是c+中的赋值运算符+;返回右值还是左值? C++中赋值操作符返回rValor还是LValk?如果是左值,这两个参数中哪一个会在这里递增 (a = b)++,c++,expression,operator-precedence,C++,Expression,Operator Precedence,它返回一个左值。根据§5.17: 赋值运算符(=)和复合赋值运算符 从右向左分组都需要一个可修改的左值作为其左值 并返回引用左操作数的左值 若这些对象有一个用于赋值的用户定义运算符,那个么它取决于运算符=的实现和声明(返回类型) 通常情况下,在 (a = b)++ 对象a将递增。您尝试过吗?一条简单的调试消息应该会告诉你答案。它是有效的,它会为第一个参数返回左值,但可能是未定义或未指定的行为?或者可能只适用于这种情况?
运算符=
的实现和声明(返回类型)
通常情况下,在
(a = b)++
对象
a
将递增。您尝试过吗?一条简单的调试消息应该会告诉你答案。它是有效的,它会为第一个参数返回左值,但可能是未定义或未指定的行为?或者可能只适用于这种情况?