다음 코드의 실행 결과로 옳은 것은?

과목: C++

문제 번호: 3322

hard
다음 코드의 실행 결과로 옳은 것은?
bool result1 = 5;
bool result2 = 0;
bool result3 = -10;
cout << result1 << result2 << result3;
A. 500
B. 101
C. 510
D. 컴파일 에러

정답: B



⦁ C++에서는 정수를 bool에 할당할 때 자동 변환이 일어납니다

⦁ 변환 규칙:
0이 아닌 모든 정수 → true (출력 시 1)
0false (출력 시 0)

⦁ 각 변수의 변환 과정:
result1 = 5true → 출력: 1
result2 = 0false → 출력: 0
result3 = -10true (0이 아니므로) → 출력: 1

⦁ 따라서 최종 출력은 101입니다
⦁ 이는 컴파일 에러가 아니라 정상적인 C++의 타입 변환 동작입니다

💡 학습 팁

이 문제를 포함한 C++ 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.