문제 5 · bool 변환과 문자 산술
문제 5 [2점]
아래 코드를 읽고, 출력을 예상하여 작성하세요.
cpp
bool a = 'a'; // 'a'의 ASCII값: 97
int b = a ? 1 : 2;
cout << 'a' + b++ << "\n"
<< static_cast<char>('a' + b++) << endl;풀이 및 해설
1) bool a = 'a'; — 'a'는 ASCII 97로 0이 아니므로 a는 true.
2) int b = a ? 1 : 2; — a가 true이므로 b = 1.
3) 출력 (<<는 C++17에서 왼쪽부터 차례로 평가됩니다)
'a' + b++:'a'는97,b++는 현재 값1을 사용한 뒤b는2.97 + 1 = 98→ 정수98출력- 개행
"\n" static_cast<char>('a' + b++):b++는 현재 값2를 사용한 뒤b는3.97 + 2 = 99→char로 변환하면'c'출력
즉 두 줄이 출력됩니다.