以下表达式的作用是什么:x = (a1,a2,..,n);

What does the following expression does: x = (a1,a2,...,n);

本文关键字:a1 a2 表达式 作用 是什么      更新时间:2023-10-16

我正在阅读有关序列点的问题,我看到了这一行:

i = (i, ++i, 1) + 1; // well defined (AFAIK)

我想知道以下语法是如何调用的,它有什么影响?

i = (a1, a2, ...,an);

这是

int操作数的逗号运算符,以及通过括号分组,这是始终允许的。第一

(i, ++i, 1)

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

(i, ++i, 1) + 1

1 + 1;

这会导致2,因此i设置为在此处2。请注意,如果没有括号,在大多数情况下,结果将不同,因为逗号运算符的优先级可能最低(感谢@dbush在评论中帮助我(。