跪求C语言中逗号表达式(a=4*5,a*2),a+15的值是
逗号表达式从左往右逐个计算表达式,先求解1,再求解2,整个表达式的值为最后一个表达式的值。逗号表达式(a=4*5,a*2),a+15:首先计算圆括号内的表达式,从左到右,a的值是20,a*2的值是40,但没有赋值给装a所以a=20。然后计算a+15的值是35,所以最终值是35。
计算过程如下:
1、先求 a=4*5=20;
2、求a*2=40,这就是(a=4*5,a*2)的最终值;由于这个结果没有赋值给a,因此a=20;
3、求a+15=35;这就是最终的值。
逗号运算符是c语言提供一种特殊的运算符,优先级别最低。从本质上讲,逗号的作用是将一系列运算按顺序执行。最右边的那个表达式的值将作为整个逗号表达式的值,其他表达式的值会被丢弃。逗号表达式本身不难,常常与赋值运算符一起考,考查学生对这两个知识点的理解和考生观察是否细心。
扩展资料
运算符优先级等级口诀:
圆方括号、箭头一句号, 自增自减非反负、针强地址长度,
乘除,加减,再移位,
小等大等、等等不等,
八位与,七位异,六位或,五与,四或,三疑,二赋,一真逗。
其中“,”号为一个等级分段。
参考资料来源:百度百科--逗号表达式
参考资料来源:百度百科--逗号运算符
a+15的值=35
在逗号表达式中先执行a=4*5=20,然后执行a*2=40当做整个表达式的结果。
但这个结果并不赋给 a,因为没有赋值给a,所以a还是等于20,最后求 a+15的值=35
扩展资料
int a1,a2,b=2,c=7,d=5;
a1=(++b,c--,d+3);
a2=++b,c--,d+3;
对于给a1赋值的代码,有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是(d+3)的值,为8,所以a1的值为8。
对于给a2赋值的代码,也是有三个表达式,这时的三个表达式为a2=++b、c--、d+3,(这是因为赋值运算符比逗号运算符优先级高)虽然最终表达式的值虽然也为8,但b=4(第2行代码运算完时,b=3,即第3行代码运行时,b的值为4),所以a2=4。
先执行a=4*5=20,然后执行a*20=40当做整个表达式的结果,但这个结果并不赋给 a,因为没有赋值给a,所以a还是20,最后求 a+15的值,=35