C语言中关于逗号运算符的一道题

逗号表达式 (a=3*5,a*4),a+15 的值是?能有详细的推理介绍更好.
2025-02-22 22:51:19
推荐回答(3个)
回答1:

小小补充1楼的一丁点

逗号表达式(a,b,c) 整个表达式最后取c的值,当然要从左向右运算

a=3*5=15 此时把15赋值给a a=15

a*4与a+15 无相关联系
所以看a+15就可 a+15=15+15=30 为这个逗号表达式的值

回答2:

赋值操作符的优先级高于逗号操作符,所以原式等价于:

(a=3*5),a*4,a+15

从左到右依次计算,并最终返回最右边的一个表达式的值,由于第一个表达式将15赋予a,所以后面两个表达式中的a的值都是15,所以这个逗号表达式的最终值是30

回答3:

这道题是这样的 从左到右计算,逗号计算符优先级是最低的,并且逗号运算符的值等于最后一个运算的值。
这里因为()优先级最高 所以先计算()里的
(a=3*5,a*4)先给a赋值使a=15,然后计算a*4 得括号里的值为 60
然后整个式子变为 60,a+15 因为a在前面被赋值等于15,所以这个式子的最后一个是a+15 所以整个逗号运算的值为 30