다음 코드의 실행 결과는?

과목: C++

문제 번호: 3332

hard
다음 코드의 실행 결과는?
auto x = 5;
x = 10;
x = 9.99;
cout << x;
A. 9.99
B. 9
C. 10
D. 컴파일 에러

정답: D



auto 키워드로 타입이 한 번 결정되면, 그 타입은 변경되지 않습니다

⦁ 코드 실행 과정:
1. auto x = 5; - x는 int 타입으로 결정됨
2. x = 10; - 정상 (int 값을 int 변수에 할당)
3. x = 9.99; - 에러 (double 값을 int 변수에 할당하려 함)

⦁ 세 번째 줄에서 컴파일 에러가 발생합니다

int 타입의 변수에 double 값을 할당하는 것은 데이터 손실 가능성 때문에 암시적 변환이 허용되지 않습니다

⦁ 만약 명시적 형변환 x = (int)9.99;를 사용하면 가능하지만, 여기서는 암시적 할당이므로 에러입니다

💡 학습 팁

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