逗号表达式 (comma operator)#

逗号表达式在教学大纲内并无实际的应用场景, 可能的考点有:

逗号表达式结合性优先级最低#

1#include <iostream>
2
3int main() {
4  int value = 0;
5  std::cout << value, ++value << value;
6}

左边子表达式的计算和副作用均先于右边子表达式#

 1#include <iostream>
 2
 3int value = 1;
 4
 5void f() {
 6  value += 1;
 7  std::cout << value;
 8}
 9
10void g() {
11  value *= 10;
12  std::cout << value;
13}
14
15int main() {
16  f(), g();
17}

整个表达式的值是最右边子表达式的值#

 1#include <iostream>
 2
 3int function() {
 4  int value = 0;
 5
 6  return value++, value;
 7}
 8
 9int main() {
10  std::cout << function();
11}