### 逗号表达式

C++语言中提供了一种特殊的表达式，逗号表达式。所谓逗号表达式，是指使用逗号运算符将两个表达式连接起来。例如：

10 * 5 , 8 * 9

对于逗号表达式来说，其运算过程为：先计算表达式 1，即“10 * 5”，然后再计算表达式2，即“8 * 9”。整个表达式的值为表达式2 的值，也就是最右边表达式的值（如果右多个表达式使用逗号连接）。下面观察如下代码：

int iret = 2; //定义一个整型变量，初始化为 2

iret = 3*5 ,iret*4; //将 iret 赋值为逗号表达式

在上面的代码中，iret 的值将为 15，有些人可能感到意外，逗号表达式的结果不应该是表达式 2 的值吗？iret 的值应为 8。实际上赋值运算符（=）的优先级高于逗号运算符（,），因此，先计算“3 * 5”，将其赋值给iret，再计算 iret*4。分析一下下面的代码：

int iret = 2; //定义一个整型变量，初始化为 2

int var = (iret = 3*5 ,iret*4); //定义一个整型变量，初始化为逗号表达式

分析变量 var 的值，var 的最终结果为 60。因为变量 iret 的值为 15，计算“15*4”即 60。

逗号表达式通常应用于 for 语句中，在 for 循环语句中修改循环变量，例如，下面的代码利用循环语句计算从 1…100 的累加求和运算。

在 for 语句中利用逗号表达式定义了两个循环变量，利用 50 次循环来实现求和运算。

int main(int argc, char* argv[])

{

int nSum = 0; //定义一个变量，记录累加的结果

for(int i=1, int j = 100; i<50, j>50; i++,j--) //在 for 语句中定义两个循环变量

{

nSum += i + j; //累加求和计算

}

cout << "结果: " << nSum << endl; //输出结果

return 0;

}

运行程序，效果如图 1 所示。

图 1 逗号表达式在 for 语句中的应用

注意：for 语句的用法会在后面的部分进行介绍，用户现在只要了解逗号表达式的用法就可以了。