逗号表达式 (comma operator)#
逗号表达式在教学大纲内并无实际的应用场景, 可能的考点有:
逗号表达式结合性优先级最低#
1#include <iostream>
2
3int main() {
4 int value = 0;
5 std::cout << value, ++value << value;
6}
点击查看答案
由于优先级最低, 可以直接将 ,
改为 ;
进行理解, 即 std::cout << value; ++value << value;
, 最终输出 0
.
左边子表达式的计算和副作用均先于右边子表达式#
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}
点击查看答案
[在线代码 xzs19de9G], 输出 1
.