2016-03-02 27 views

回答

2

这使用逗号运算符,该运算符(没有重载)只计算左手表达式,抛出结果并返回右手表达式的结果。

由于表达45有没有副作用,你的代码就相当于:

double d = 6; 
2

这是comma operator

在逗号表达E1,E2,表达E1进行评价时,其 结果被丢弃,并且之前的表达E2开始的 评价(注意,一个用户定义的 操作者它的副作用都完成后,不能保证排序)。

对于(4,5,6),首先评估表达4,无视它的返回值,(这里没有确实)完成任何副作用,然后做同样的事情与5,然后评估最后的表达6,返回类型和评估结果。