I have been trying to understand how printf processes the arguments that are passed to it. To be more specific can someone please explain how the following outputs occour.
int a=1;
printf("%d %d %d",++a,a,a++);// outputs: 3 3 1
a=1;
printf("%d %d %d",a++,a,a++);// outputs: 2 3 1
a=1;
printf("%d %d %d",a,a,a++);// outputs: 2 2 1
a=1;
printf("%d %d %d",a,a++,a);// outputs: 2 1 2
a=1;
printf("%d %d %d",a,a,++a);// outputs: 2 2 2
the same output occurs with the cout
statement.