c++ - C++ 中的赋值运算符返回右值还是左值?

标签 c++ expression operator-precedence

C++ 中的赋值运算符返回右值还是左值?如果它是左值,两个参数中的哪一个会在这里递增?

(a = b)++

最佳答案

它返回一个左值。根据 § 5.17:

The assignment operator (=) and the compound assignment operators all group right-to-left. All require a modifiable lvalue as their left operand and return an lvalue referring to the left operand.

如果那些对象有一个用户定义的赋值运算符,那么它取决于operator=的实现和声明(返回类型)。

通常情况下,之后

(a = b)++

对象 a 将递增。

关于c++ - C++ 中的赋值运算符返回右值还是左值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19244627/

相关文章:

c++ - 将 Python HTTP 服务器作为 RPC 服务器嵌入到 C 程序中?

c++ - 我可以将( boost )绑定(bind)与功能模板一起使用吗?

r - 将表达式对象组合成 ggplot 标签的单个文本字符串

c# - 用语法糖强制算术优先级

mysql - MySQL 中的过滤行效率

java - 我是否在 Java 中错误地执行了我的操作顺序?

c++ - 如何将不同长度的数据读入二维数组?

c++ - SFML 碰撞检测只在原点工作?

javascript - JavaScript 中的表达式和语句

sql-server - 对 SSRS 中的一列表达式求和