오늘 처음본 신기한고 이해가 안되는게 있어서 질문드리는데


int a=5;

printf("%d %d %d", a++, a++, a++);


위 코드에서 제가 생각하던 결과는 5 6 7이 출력되는건데 반대로 7 6 5가 출력되더라고여

그래서 printf에 넣어준 식들은 뒤에 있는거부터 처리되나보다 싶었는데


int b=0;

printf("%d %d %d", b, b=5, b);


이런식으로 코드를 짜면 뒤에서부터 계산해서 5 5 0이 찍히는게 아니라 5 5 5가 찍히더라고여??!?

그런데 다시 후치를 하나 넣어서


int c=0;

printf("%d %d %d", c, c=5, c++);


이렇게 하면 뒤에서부터 계산한거처럼 5 5 0이 찍히던데


printf 안에서 연산이 어떤 순서로 처리되길래 이렇게 되는지 궁금하네요.