假设
E
、F
和 G
是不涉及优先级高于逗号的运算符的表达式。表达式 ((E, F), G)
和 (E, (F, G))
在标量、列表和/或 void 上下文中是否等价?更准确地说,你能不能在不影响程序执行的情况下总是用((E, F), G)
替换(E, (F, G))
,反之亦然?
上下文不影响代码的解析方式。
逗号/列表运算符保证从左到右评估每个操作数(无论上下文如何)。
从那个和更多的信息中,我们可以证明
E, F, G
,( E, F ), G
和E, ( F, G )
是等价的。