来自VCKBASE:
逗号分割表达式继承于C.很可能你常在For-和While-中用这种表达式,但是就这一点而言,语言的规则要远不同于你的个人直觉.那么就看看逗号分割表达式的用法:
一个表达式可以有多个由逗号分开的子表达式组成,
一个例子:
if(++x, --y, cin.good()) /*three expressions*/
这个if条件包含了三个逗号分开的表达式.C++保证每个子表达式都会被求值,但是整个表达式的值却只取决于最右边的表达式的值,因此,上面的if条件句的条件只有在cin.good()返回TRUE时才为TRUE.
下面是逗号分割的另一个例子:
int j=10;
int i=0;
while( ++i, --j)
{
/*..j!=0时重复执行While体(repeat as long as j is not 0)*/
}
运行结果:
i=10;
j=0;