C语言 int c=5和int a; a=2+(c+=c,c+8,++c),则a=?计算过程和结果是怎样的?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 23:39:46

C语言 int c=5和int a; a=2+(c+=c,c+8,++c),则a=?计算过程和结果是怎样的?
C语言 int c=5和int a; a=2+(c+=c,c+8,++c),则a=?计算过程和结果是怎样的?

C语言 int c=5和int a; a=2+(c+=c,c+8,++c),则a=?计算过程和结果是怎样的?
(c+=c,c+8,++c),这个是逗号表达式,记住逗号表达式的两个特点:
1. 逗号表达式从左向右运算
2. 逗号表达式的值等于最右值
所以:
(c+=c,c+8,++c)运算顺序为:
c+=c,也就是c=c+c=5+5=10
c+8,这个加法表达式不影响c的值,运算结果为10+8=18
++c,c自增1,c=c+1=10+1=11
所以(c+=c,c+8,++c)也就等于(10,18,11),该表达式的值为11
a=2+(c+=c,c+8,++c)=2+11=13