#include <stdio.h>
void main()
{
int a, b1, b2;
a = 3;
b1 = ++a + ++a;
b2 = ++a + ++a + ++a;
printf ("%d \n",b1);
printf ("%d \n",b2);
}
실행하면 답이......
10
22
나오는데....
++? 이.. ?+1 이잖아요..
그럼.... 애초 수가 3이니까..
8
12가 정상 아닌가요??
그런데 교재에는 컴파일러에 따라 달라진다고도 하는데..
왜 그러는지 알고싶습니다..
요 내용의 연산 순위를 참고하여, ++연산이 먼저 이루어진 후 변수 a를 더하므로 b1의 결과값은 10이 나옵니다.
b1의 연산에서 ++연산이 2번 이루어졌으므로 a의 값은 5로 증가된 값을 저장하고 있구요.
b2의 연산은 ((++a + ++a) + ++a) 이 순서로 이루어졌다는 걸 알 수 있죠.