문제 4 · 전위/후위 증가와 부작용
문제 4 [1점]
아래 코드를 읽고, 출력을 예상하여 작성하세요.
cpp
double a = 3.7, b = 2.3;
double c = ++a + b++;
cout << ((++a + b++) < c) << endl;풀이 및 해설
전위 증가 ++a는 먼저 1 증가시킨 값을, 후위 증가 b++는 증가 전의 값을 식에 사용합니다.
1) c 계산 (a = 3.7, b = 2.3)
++a:a가4.7이 되고 그 값4.7을 사용b++: 현재 값2.3을 사용한 뒤b는3.3c = 4.7 + 2.3 = 7.0
2) 비교식 계산 (a = 4.7, b = 3.3)
++a:a가5.7이 되고 그 값5.7을 사용b++: 현재 값3.3을 사용한 뒤b는4.3- 좌변
= 5.7 + 3.3 = 9.0
3) 비교: (9.0 < 7.0) 은 거짓이므로 bool 출력은 0.