프로그래밍 배우는 학생입니다.
호기심에 이런 코드를 써보았는데요.
결과값이 왜 이렇게 나오는지 궁금해서 질문합니다.
j=0;
printf("%d %d %d %d %d\n", j++, j++,j++, j , j++);
VS2013 : 3 2 1 4 0
맥10.11 : 0 1 2 3 3
gcc4.6.3 : 0 1 2 4 3
j = 0;
printf("%d %d %d\n", ++j, j++, j);
VS2013 : 2 0 2
맥10.11 : 1 1 2
gcc4.6.3 : 2 1 2
결과가 다 다른데 왜 이런지 궁금합니다.
각 컴파일러마다 규칙을 대강 알 것 같기는 합니다.
근데 이렇게 달라도 되는건가요?