캐스팅 연산자 (Casting Operator)

satic·2025년 3월 18일

🔹 캐스팅 연산자(Casting Operator)란?

캐스팅 연산자(Casting Operator)는 프로그래밍에서 변수의 데이터 타입을 변환할 때 사용됩니다.
특히, C, C++, Java, Python 등 다양한 언어에서 제공되며, 기본적으로 명시적 변환(Explicit Casting)과 묵시적 변환(Implicit Casting) 두 가지 방법이 있습니다.


✅ 1. 묵시적 형 변환(Implicit Casting)

  • 자동 형 변환(자동 캐스팅)이라고도 하며, 작은 데이터 타입에서 큰 데이터 타입으로 변환될 때 자동 적용됩니다.
  • 데이터 손실이 없기 때문에 별도의 명령 없이 변환됩니다.

📌 예제 (C++)

int num = 10;
double dnum = num; // int → double 자동 변환

cout << dnum;  // 출력: 10.0

📌 예제 (Java)

int num = 50;
double dnum = num;  // 자동 변환 (int → double)

System.out.println(dnum);  // 출력: 50.0

✅ 2. 명시적 형 변환(Explicit Casting)

  • 큰 데이터 타입을 작은 데이터 타입으로 변환할 때 사용되며, 데이터 손실이 발생할 수도 있습니다.
  • C, C++에서는 (타입)을 사용하고, Java에서는 (타입) 형식의 캐스팅이 필요합니다.
  • Python은 int(), float() 등의 함수를 사용하여 변환합니다.

📌 예제 (C++)

double dnum = 9.7;
int num = (int)dnum; // 명시적 형 변환 (double → int)

cout << num;  // 출력: 9 (소수점 이하 손실)

📌 예제 (Java)

double dnum = 9.7;
int num = (int) dnum;  // double → int (소수점 이하 손실)

System.out.println(num);  // 출력: 9

📌 예제 (Python)

num = int(9.7)  # float → int
print(num)  # 출력: 9

✅ 3. C++의 특별한 캐스팅 연산자

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

✅ 4. 캐스팅 연산자의 활용

언어별 형 변환 방법을 잘 이해하고 사용해야 데이터 손실이나 오류를 방지할 수 있습니다.
특히 C++의 reinterpret_cast는 매우 위험할 수 있어 주의가 필요합니다.

profile
95.06.09

0개의 댓글