다음 코드의 실행 결과는?

과목: C++

문제 번호: 3385

hard
다음 코드의 실행 결과는?
bool result1 = 5;
bool result2 = 0;
bool result3 = -3;
cout << result1 << result2 << result3;
A. 500
B. 101
C. 503
D. 컴파일 에러

정답: B



⦁ C++에서 정수를 bool에 할당할 때 자동 변환이 발생합니다

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

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

⦁ 최종 출력: 101

⦁ 이는 C++의 표준 타입 변환 규칙이므로 컴파일 에러가 발생하지 않습니다

⦁ 음수든 양수든 0이 아니면 모두 true로 변환됩니다

💡 학습 팁

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