请大家看看这个程序的运算逻辑是什么

img


为什么这个程序输出结果是5,这个里面的知识点和逗号运算符有关吗(a=a+1,b+a,b+1)和a=a+1,b+a,b+1的结果为什么不一样

前面只有一个%d,对应后面第一个变量即a=a+1,也就是5

这样则会输出 5 9 6

#include <stdlib.h>
 
int main()
{
    int a=4,b=5;
    printf("%d %d %d",a=a+1,b+a,b+1);
    return(0);
}

这里不是逗号运算符,这里是printf()函数的知识点,参考:https://baike.baidu.com/item/printf/7467706?fr=aladdin

应该是printf函数只有一个%d打印一个十进制数字,后面跟多个值(逗号间隔)只会取第一个