这是 c语言逗号表达式吗?运行结果为什么是15而不是20?

2025-05-10 00:17:09
推荐回答(2个)
回答1:

你不会以为a=3*5+a*4+a+5吧,=之后的三个表达式的结果又不会相加以后再给a,分号代表一个表达式的结尾,后面两个表达式只是计算了没有保留结果的空表达式。

回答2:

这个是一个运算符优先级问题,逗号的优先级是最低的,a=3*5,a*4,a+5相当于(a=3*5),a*4,a+5
。a只在a=3*5的时候被赋值了一次,你打印出a的值当然是15了呀,如果想打印20就把这整个表达式的值给打印出来,也就是想你的cpp2.cpp那样的程序