- C程序设计语言
- 魏东平 朱连章 于广斌编著
- 544字
- 2020-08-26 20:56:21
2.8 逗号运算符与逗号表达式
在C语言中,逗号不仅是一个分隔符,还可以作为运算符出现,用于连接两个表达式,形成逗号表达式。逗号运算符的运算对象是任意表达式,当然也包括逗号表达式。逗号运算符的优先级在所有运算符中是最低的,具有左结合性,也称为“顺序求值运算符”。
逗号表达式的一般形式为:
表达式1,表达式2,……,表达式n
在程序执行时,按从左到右的顺序执行组成逗号表达式的各表达式,并将最后一个表达式(即表达式n)的值作为整个逗号表达式的值。例如:
① 5+5, 6+1的值是7。
② a=5*6, a*2的值是60,而a的值是30。
③ (a=4*5, a*2), a+5的值是25,a的值为20。
在上面的例子中,逗号表达式“a=5*6,a*2”的计算顺序为:先计算a=5*6(赋值运算符比逗号运算符的优先级高),得到a的值30,再计算a*2,得到整个逗号表达式的值60。逗号表达式“(a=4*5,a*2),a+5”的计算顺序为:先计算a=3*5,得到a的值20,再计算a*2(注意a的值并没有改变,还是20),最后计算a+5,得到整个逗号表达式的值25。
其实,逗号表达式的作用无非是把若干个表达式“串联”起来,并不具备运算能力。在许多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值。
注意:并不是在所有出现逗号的地方都组成逗号表达式。例如,在变量说明和函数参数表中的逗号只是用做各变量之间的分隔符。