C语言优先级优先

时间:2017-11-19 07:02:20

标签: c

最近我遇到了这个程序 X = 3 * 4%5/2 在算术表达式中,先行的顺序是乘法,除法和模数。 如果我们评估表达式,答案应为0但答案是1.请解释

2 个答案:

答案 0 :(得分:1)

  1. 查找C运算符优先级表here

  2. 请注意, ........ .then(function (next) { var jsonData = { name: req.body.name, year: req.body.year }; socket.once('drain', function () { socket.write(jsonData, (done)=>{ console.log(done0); next(null, 2); }); }); }) .......... 都具有相同的优先级和从左到右的关联性。

  3. 从左到右进行评估:* / %

  4. 就个人而言,我有一条规则,如果我任何关于优先级的不确定性,我会使用括号进行分组。依赖运算符优先级是不明智的:它可以在语言和数学风格之间进行。一个优秀的程序员/数学家试图确保他们的代码按预期进行评估,并且还要明确地将这个意图传达给他人:括号消除歧义。

答案 1 :(得分:-2)

答案仅为1。 3 * 4 = 12,12%5 = 2,2/2 = 1

所以答案是1。

如果从右侧执行操作,您将获得0。但那不正确。当*,%,/具有相同的优先级时,第一个操作将通过选择最左边的运算符来完成。所以我们选择*。接下来是%。之后 /。