캐스팅 연산자(Casting Operator)는 프로그래밍에서 변수의 데이터 타입을 변환할 때 사용됩니다.
특히, C, C++, Java, Python 등 다양한 언어에서 제공되며, 기본적으로 명시적 변환(Explicit Casting)과 묵시적 변환(Implicit Casting) 두 가지 방법이 있습니다.
int num = 10;
double dnum = num; // int → double 자동 변환
cout << dnum; // 출력: 10.0
int num = 50;
double dnum = num; // 자동 변환 (int → double)
System.out.println(dnum); // 출력: 50.0
(타입)을 사용하고, Java에서는 (타입) 형식의 캐스팅이 필요합니다.int(), float() 등의 함수를 사용하여 변환합니다.double dnum = 9.7;
int num = (int)dnum; // 명시적 형 변환 (double → int)
cout << num; // 출력: 9 (소수점 이하 손실)
double dnum = 9.7;
int num = (int) dnum; // double → int (소수점 이하 손실)
System.out.println(num); // 출력: 9
num = int(9.7) # float → int
print(num) # 출력: 9
C++에서는 더 정교한 형 변환을 위해 4가지 캐스팅 연산자를 제공합니다.
| 캐스팅 연산자 | 설명 |
|---|---|
static_cast<T>() | 기본적인 형 변환 (int → double 등) |
dynamic_cast<T>() | 다형성(Polymorphism)에서 업캐스팅, 다운캐스팅 |
const_cast<T>() | const 속성을 제거하여 수정 가능하게 만듦 |
reinterpret_cast<T>() | 포인터나 메모리 주소를 변환 |
static_cast 예제double dnum = 3.14;
int num = static_cast<int>(dnum); // double → int 변환
cout << num; // 출력: 3
언어별 형 변환 방법을 잘 이해하고 사용해야 데이터 손실이나 오류를 방지할 수 있습니다.
특히 C++의 reinterpret_cast는 매우 위험할 수 있어 주의가 필요합니다.