Your second code (after removing the syntax error caused by the comment) reads
a = b-- - printf("a = %d, b = %d", a, b);
Since printf
returns a value, that is valid code. When I initialise
int a = 0;
the program output is
a = 0, b = 120
In C end-of-line does not mean end-of-statement.
4
solved statement even working and executing fine without the semicolon