printf("=%d",a=a+1,b=a+2);
The comma here is not the comma operator, but an argument list, part of the function call syntax.
The order of evaluation of function parameters is unspecified behavior, meaning that the compiler may evaluate the left or the right parameters first, and you cannot know which.
In addition, your code contains a side-effect of updating the variable a=a+1. This is written in the same expression as code that uses a for other purposes than to determine which value to store in a, namely b=a+2. These two sub-expressions are not sequenced in relation to each other, so your code invokes undefined behavior. Meaning this is a bug and anything can happen.
And since you only have one format specifier in printf, but pass 2 arguments, you invoke a different kind of undefined behavior there too, likely resulting in a crash, or if you are lucky, a compiler message.