逗号表达式详解

简介: 逗号表达式详解

逗号表达式

基本形式

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


相关文章
【逆波兰表达式求值】
【逆波兰表达式求值】
10_逆波兰表达式求值
10_逆波兰表达式求值
|
7月前
彻底大悟!逆波兰表达式求值(150)
彻底大悟!逆波兰表达式求值(150)
|
7月前
|
Java C++ Python
acwing 3302. 表达式求值
acwing 3302. 表达式求值
|
7月前
|
C语言 C++
逗号表达式与赋值表达式
逗号表达式与赋值表达式
67 0
|
7月前
|
存储 算法 编译器
【C/C++ 逗号表达式】C/C++中的逗号运算符
【C/C++ 逗号表达式】C/C++中的逗号运算符
92 0
|
7月前
|
C语言 C++
详解逗号表达式
详解逗号表达式
157 0
|
7月前
逆波兰表达式求值
逆波兰表达式求值
73 1
|
C++
逗号运算符和逗号表达式
C/C++ 逗号运算符和逗号表达式
109 0