【发布时间】:2016-12-28 18:17:59
【问题描述】:
int x=3, y=4, n=0;
int n = x * y / --x;
这段代码计算n 为6,但我认为它是4;因为--x 是一个预递减运算符,优先级高于* 和/,所以它是2 * 4 / 2 我假设它是2*4 而不是3*4,因为x 已经递减了,所以我在这里想念什么? here 提出了同样的问题,但答案是特定于 PHP 的。
【问题讨论】:
-
@kbunarjo 这没有回答我的问题。
-
x 在到达 --x 之前已经被计算过了,因此 x 仍然是 3。
-
你确定吗?顺便说一句,那是 C#。现在谈到 C++,我继续在 Xcode 中尝试了这个,它给了我一个警告:“未排序的修改和访问 'x'”。
-
C# 规范非常清楚,关联性、优先级和评估顺序都是不同的东西。像
x、y和--x这样的表达式是从左到右计算的。我确定这个问题有重复。
标签: c# operators operator-precedence