逗号表达式
基本形式
exp1,exp2,exp3,……expN
基础概念
- 逗号表达式:就是用逗号隔开的多个表达式
- 从左向右依次执行,整个表达式的的结果就是最后一个表达式的结果
运算优先级
在所有的运算符中,逗号表达式的优先级最低
例子
Eg1:
int a = 1; int b = 2; int c = (a > b, a = b + 10, a, b = a + 1); //c的值为?
- 第一个表达式 a > b结果为0
- 第二个表达式结果为12,a的值变为12
- 第三个表达式结果为1
- 最后一个表达式结果为b = a + 1 = 12 + 1 = 13
- 故c的值为13
Eg2:
int a = 1; int b = 2; int c = (++a, a += b++, a++); //a,b,c的值各为多少?
- 第一个表达式为前置++,故值为2,a的值变为2
- 第二个表达式,b++为后置++,故(a += b++) == (a = a + b),表达式的结果为4,a的值变为4,b的值变为3
- 最后一个表达式,为后置++,故结果为a = 4,a的值变为5
- 因此,a = 5, b = 3, c = 4