2.5.7 逗号运算符和逗号表达式
1. 逗号运算符和逗号表达式的定义
逗号,既是一个C++的分隔符,又是一个C++的运算符。作为运算符,其称为逗号运算符,用逗号运算符组建起来的表达式称为逗号表达式。逗号运算符的运算符对象是任意表达式,当然也包括逗号表达式。
2. 逗号表达式格式
逗号表达式的一般形式为:
- 表达式1,表达式2,……,表达式n
3. 逗号表达式功能
逗号表达式自左向右地计算各个分表达式的值,而整个逗号表达式的值为其最右端那个分表达式(表达式n)的值。
4. 逗号表达式注意事项
(1) 逗号表达式一般形式中的表达式1和表达式2也可以是逗号表达式。例如:
- 表达式1,(表达式2,表达式3)
形成了嵌套情形。因此可以把逗号表达式扩展为以下形式:
- 表达式1,表达式2,…表达式n
整个逗号表达式的值等于表达式n的值。
(2) 程序中使用逗号表达式,通常是要分别计算逗号表达式内各表达式的值,并不一定要计算整个逗号表达式的值。
(3) 并不是在所有出现逗号的地方都组成逗号表达式,如在变量定义中和函数参数表中的逗号只是用作各变量之间的分隔符。
(4) 赋值运算符的优先级高于逗号运算符。
其实,逗号表达式无非是把若干个表达式"串联"起来,在许多情况下,使用逗号表达式的目的只是想得到各个表达式的值,并非一定需要得到和使用整个逗号表达式的值。例如,下面语言实现了对5个变量分别赋初值:
- int a=1,b=2,c=0,d=3,e=5;
另外,逗号运算符可用在if条件表达式或for循环语句中控制两个变量。
- if(a==0,b==1){…}
- for(i=0,j=0;i<10;i++,j++){…}