Skip to content

문제 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이 아니므로 atrue.

2) int b = a ? 1 : 2;atrue이므로 b = 1.

3) 출력 (<<는 C++17에서 왼쪽부터 차례로 평가됩니다)

  • 'a' + b++: 'a'97, b++는 현재 값 1을 사용한 뒤 b2. 97 + 1 = 98 → 정수 98 출력
  • 개행 "\n"
  • static_cast<char>('a' + b++): b++는 현재 값 2를 사용한 뒤 b3. 97 + 2 = 99char로 변환하면 'c' 출력

즉 두 줄이 출력됩니다.

98c

👉 실습(C++)에서 확인하기

PDF