逗号运算符和逗号表达式

C++提供一种特殊的运算符—逗号运算符,又称为“顺序求值运算符”。用它将两个表达式连接起来。如

3 + 5,6 + 8

是一个逗号表达式。逗号表达式的一般形式为

表达式1,表达式2

逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,上面的逗号表达式“3+5,6+8”的值为14。又如,逗号表达式

a = 3 * 5,a * 4

对此表达式的求解,读者可能会有两种不同的理解:一种理解认为3 * 5,a * 4是一个逗号表达式,先求出此逗号表达式的值,如果a的原值为3,则逗号表达式的值为12,将12赋给a,因此最后a的值为12。另一种理解认为:a = 3 * 5是一个赋值表达式,a * 4是另一个表达式,二者用逗号相连,构成一个逗号表达式。这两种理解哪一种对呢?实际上:赋值运算符的优先级别高于逗号运算符,因此应先求解a = 3 * 5(也就是把a = 3 * 5作为一个表达式)。经计算和赋值后得到a的值为15,然后求解a*4,得60。整个逗号表达式的值为60。

逗号表达式的一般形式可以扩展为

表达式1,表达式2,表达式3,···,表达式n

它的值为表达式n的值。

其实,逗号表达式无非是把若干个表达式“串联”起来。在许多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值,逗号表达式最常用于循环语句(for语句)中。


结束语

以上,是笔者整理的自我认为本章内重要的内容,内容多数来自《C++程序设计(第三版)》中的第二章内容,至此,第二章已全部完结,希望可以帮助到正在阅读本片文章的你,最后,感谢你的阅读,祝你生活愉快,学习顺利