![C++新经典](https://wfqqreader-1252317822.image.myqcloud.com/cover/184/44510184/b_44510184.jpg)
上QQ阅读APP看书,第一时间看更新
2.3.2 逗号运算符和逗号表达式
逗号运算符和逗号表达式应用的场合不算太多,但也需要一定的了解和掌握。逗号运算符就是一个逗号,而逗号表达式是用逗号将两个表达式连接起来构成的一个更长的表达式,从表2.6中可以看到,逗号运算符是优先级最低的运算符。逗号表达式的格式如下:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p60_852821.jpg?sign=1738948112-rwcHvVfMcUe5UPw0GD4RriNmljHjJcq5-0-93ab3fbb4f5d664ce4ce8608b2c3d837)
逗号表达式的求解过程:先求解表达式1,再求解表达式2,整个表达式的值是表达式2的值。
看看如下范例:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p60_85284.jpg?sign=1738948112-klgsGITpkU6jWbwF2QCKsU6j5uvzbdHk-0-a9e8059cf20fd4ff4856f46db1cf19ec)
逗号表达式的格式可以进行扩展,也就是说,多个表达式都可以用逗号连起来。扩展后的格式如下:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p60_44967.jpg?sign=1738948112-CZ9gUwdbbNBCxkkSbGUd2HiL46NndeUV-0-3ffbd7a3b4d087ff4be25382e15a8fe9)
求解的过程也是依次从左到右求解各个表达式的值,而整个表达式的值是表达式N的值。特别值得注意的是,逗号运算符是优先级最低的运算符。看看如下范例:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p60_85287.jpg?sign=1738948112-8OuT7WfOL526LELsPz2fv8p7rDBlhGTZ-0-b5c394a858b0342541d67a9136a58e70)
但并不是任何出现逗号的地方都看成是逗号表达式。看看下面这行代码:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p60_85288.jpg?sign=1738948112-T3jbTpN1WpgQWNpXfX6c7tKJ9GKYvNSh-0-4a8f0642b1fabe3eaa3f4c1d25206b8f)
上面这行代码中,“3,4,5”并不是逗号表达式,而是printf函数的参数,函数以及函数参数的概念后面章节会讲解。