This question already has answers here:
How does the Comma Operator work

(9个答案)


去年关闭。




我正在阅读有关序列点的this question,并且看到以下行:



我想知道如何调用以下语法,其作用是什么?
i = (a1, a2, ...,an);

最佳答案

这是int操作数的逗号运算符,并且始终通过括号进行分组。第一,

(i, ++i, 1)

先计算i,然后计算++i,然后计算1并返回最后一个表达式的结果(即1)。然后
(i, ++i, 1) + 1

是相同的
1 + 1;

结果为2,因此此处i设置为2。请注意,如果没有括号,结果在大多数情况下是不一样的,因为逗号运算符的优先级最低(感谢@dbush的帮助,以帮助我在此处进行评论)。

关于c++ - 以下表达式的作用是:x =(a1,a2,…,n); ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56686150/

10-15 06:51