以下表达式的作用是什么:x = (a1,a2,..,n);
What does the following expression does: x = (a1,a2,...,n);
我正在阅读有关序列点的问题,我看到了这一行:
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在评论中帮助我(。
相关文章: