关于Dev-C++5.11运行以下逻辑判断代码结果错误,求详细解答

用Dev-C++运行以下代码,结果错误
#include<stdio.h>
int main()
{
int a=1,b=2,c=3;
printf("%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c));
return 0;
}

img

分开写是正确的,合在一起计算式并不是从左往右依次计算的


printf("(%d,%d,%d),%d,(%d,%d,%d),%d,(%d,%d,%d),%d,(%d,%d,%d),%d,(%d,%d,%d)\n",a,b,c,(a=b=c),a,b,c,(a=b==c),a,b,c,a==(b=c),a,b,c,(a==(b==c)),a,b,c);

输出结果为(3,3,3),3,(3,3,3),3,(3,3,3),0,(3,3,3),0,(3,3,3)

正常输出是啥