为什么是这样,有谁能帮我解答一下吗

#include<stdio.h>
int main()
{
int a;
printf("%d\n",(a = 3 * 5,a * 4,a+5));
return 0;
}
答案为什么是20,有点理不清了

(a = 3 * 5,a * 4,a+5)从左往右计算 取最右值 第一个式子 给a赋值为15 第二个式子 60 第三个式子 15+5=20 取最右值 输出为20

  1. (a = 3 * 5,a * 4,a+5),这个式子是(逗号的计算)从左往右计算,最后取最右端答案。

  2. int a默认a=0,然后运行a=35,即a=15,然后运行a4但为赋值,a仍为15。再运行a+5。

  3. 即,(a = 3 * 5,a * 4,a+5)为(15,60,20)并取最后一个值输出