타입 캐스팅 파트 1
Coddy C++ 여정의 기초 섹션에 포함된 레슨. 74개 중 14번째.
형 변환은 값을 한 데이터 형식에서 다른 형식으로 변환하는 과정입니다.
C++에서는 정수를 double로, double을 정수로 변환하는 등 다양한 변환을 할 수 있습니다. casting에는 두 가지 유형이 있습니다. implicit(자동) casting과 explicit(수동) casting입니다.
예를 들어 Integer to Double:
암시적(automatically) 캐스팅:
int number = 5;
double decimal = number; // 자동으로 5.0이 됩니다
// 계산과 함께
int x = 7;
double result = x / 2.0; // 결과는 3.5입니다참고: 두 int 값을 나눌 때 C++는 정수 나눗셈을 수행합니다. 소수 부분은 버려집니다. 예를 들어 7 / 2는 3을 반환하며, 3.5가 아닙니다. 소수 결과를 얻으려면 피연산자 중 하나 이상이 double이어야 합니다(예: 7 / 2.0은 3.5를 반환합니다).
명시적(수동) 캐스팅 Double to Integer:
double decimal = 9.7;
int number = (int) decimal; // 9가 됩니다 (소수 부분이 잘림)
// 계산과 함께
double price = 19.99;
int roundedPrice = (int) price; // 19가 됩니다Modern C++에서 권장되는 style: C 스타일 캐스트 (int) decimal 대신 static_cast<>()를 사용하는 것이 더 나은 관행입니다. 이는 더 안전하며 의도를 더 명확하게 보여 줍니다:
double decimal = 9.7;
int number = static_cast<int>(decimal); // 9가 됩니다 (소수 부분은 잘림)
double price = 19.99;
int roundedPrice = static_cast<int>(price); // 19가 됩니다참고: (int) value와 static_cast<int>(value)는 여기에서 동일한 result를 생성하지만, static_cast<>()는 변환이 명확하게 드러나고 컴파일러의 검사를 받으므로 modern C++에서 권장되는 방식입니다.
챌린지
초급형 변환을 보여 주는 C++ 프로그램을 작성하세요. 다음을 수행하세요:
price 변수를 int로 변환하고 그 결과를 intPrice라는 새 변수에 저장하세요.
직접 해보기
#include <iostream>
int main() {
// 변수 선언 및 초기화
double price = 99.99;
int intPrice = ?; // double에서 int로 명시적 형변환
// 값 출력
std::cout << "Price: " << price << std::endl;
std::cout << "Int Price: " << intPrice << std::endl;
return 0;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 C++ 컴파일러