【发布时间】:2019-06-10 16:29:09
【问题描述】:
我已经知道x += 1 的意思是x = x + 1。
=-symbol 将其右侧的算术表达式的值分配给左侧的变量。
但是如果我有一个像x += y % 3 这样的表达式,这是否意味着x = (x + y) % 3 或x = x + (y % 3)?
+= 运算符既为变量分配值又表达算术,这让我很困惑。
不幸的是,我目前不能只测试一些代码来检查,所以我希望我能在这里得到一些帮助。 我是 C++ 新手,所以其中一些非常基本的东西仍然让我感到困惑......
【问题讨论】:
-
无法编写代码进行检查是公平的。但是如果你能写一个 SO 帖子,你肯定可以查找this table
-
%具有更高的优先级,因此x += y % 3是x += (y % 3),这会将x增加y % 3。 -
"但是如果我有一个像
x += y % 3这样的表达式,这是否意味着x = (x + y) % 3或x = x + (y % 3)?" 你的表达式没有括号,所以它有x = x + y % 3。每个操作的执行顺序由运算符优先级决定。 -
我投票决定将此问题作为题外话结束,因为它是一个清晰、有据可查的教科书问题,不应该是问题堆栈溢出。
标签: c++