不能用逗号操作符将两个声明组合起来,这是因为声明已经将逗号用于其他用途-----分割列表中的变量。例如:
int j = 0,i = 3;
到目前为止,逗号操作符最常见的用途是将两个或更多的表达式放到一个for循环表达式中。不过C++还为这个操作符提供了另外两个特性。首先,它确保先计算第一个表达式,然后计算第二个表达式(换句话说,逗号操作符是一个顺序点)。如下所示的表达式是安全的:
i = 20,j = 2 * i;//i set to 20,j set to 40
其次,C++规定,逗号表达式的值是第二部分的值。例如,上述表达式的值为40,因为j = 2 * i的值为40.
在所有的操作符中,逗号操作符的优先级是最低的。例如,下面的语句:
cata = 17,240;
被解释为:
(cats = 17),240;
也就是说,将cats设置为17,240不起作用。不过,由于括号的优先级最高,下面的表达式:
cats = (17,240);
将把cats设置为240----逗号右侧的表达式。
注意在声明一个变量并初始化的时候不能用逗号操作符将两个初值分开,例如:
int a = 1,2;//invalid,编译不过
而赋值的时候则可以,例如:
int a;
a = 1,2;//则是合法的
原文地址:http://blog.csdn.net/fayery/article/details/38826723