Menu
Coddy logo textTech

형 변환 파트 1

Coddy C 여정의 Fundamentals 섹션에 포함된 레슨 — 63개 중 13번째.

C 언어에서의 타입 캐스팅(형 변환)은 한 데이터 타입의 값을 다른 타입으로 변환할 수 있게 해줍니다. 이는 서로 다른 데이터 타입 간의 연산을 수행해야 할 때 유용합니다.

형 변환(type casting)에는 두 가지 주요 유형이 있습니다:

  1. 암시적 형 변환 (자동)
  2. 명시적 형 변환 (수동)

암시적 형변환부터 시작해 보겠습니다:

작은 데이터 타입에서 큰 데이터 타입으로 변환할 때 암시적 형변환이 자동으로 발생합니다:

int num = 10;
double decimal_num;

// int에서 double로의 암시적 형변환
decimal_num = num;

위 코드를 실행한 후, decimal_num10.0 값을 갖게 됩니다.

이것은 double이 데이터 손실 없이 int의 모든 가능한 값을 저장할 수 있기 때문에 작동합니다. 변환이 안전하므로 C는 이를 자동으로 수행합니다.

일반적인 암시적 형변환 경로:

  • char → int → long → float → double

이제 명시적 형변환(explicit casting)에 대해 알아보겠습니다:

명시적 형변환(Explicit casting)은 변환하려는 값 앞에 대상 데이터 타입을 괄호 안에 넣어 수동으로 수행됩니다. 이는 데이터 손실이 발생할 수 있는 큰 데이터 타입에서 작은 데이터 타입으로 변환할 때 필요합니다:

double decimal_num = 5.65;
int num;

// double에서 int로 명시적 형변환
num = (int)decimal_num;

위 코드를 실행한 후, num5라는 값을 갖게 됩니다.

double에서 int로 캐스팅할 때 소수 부분은 (반올림되지 않고) 버려진다는 점에 유의하세요. 명시적 캐스팅을 위한 구문은 다음과 같습니다:

(target_type) value

이러한 변환은 데이터 손실이 발생할 수 있기 때문에, C 언어에서는 이를 명시적으로 수행할 것을 요구합니다. 이는 컴파일러에게 잠재적인 데이터 손실 가능성을 인지하고 있음을 알려주는 역할을 합니다.

challenge icon

챌린지

쉬움

다음과 같은 프로그램을 작성하세요:

  1. double 변수 result를 선언하고 5.65로 설정합니다.
  2. int 변수 grade를 선언합니다.
  3. 명시적 형변환(explicit casting)을 사용하여 result의 값을 grade에 할당합니다.
  4. printf를 사용하여 "The grade is: " 메시지와 함께 grade의 값을 출력합니다.

치트 시트

암시적 형변환 (Implicit casting) — 작은 타입에서 큰 타입으로의 자동 변환:

int num = 10;
double decimal_num = num; // 10.0이 됨

일반적인 암시적 형변환 경로: char → int → long → float → double

명시적 형변환 (Explicit casting)(target_type) value를 사용한 수동 변환:

double decimal_num = 5.65;
int num = (int)decimal_num; // 5가 됨 (반올림되지 않고 버림됨)

데이터 손실이 발생할 수 있는 큰 타입에서 작은 타입으로 변환할 때는 명시적 형변환을 사용하세요.

직접 해보기

#include <stdio.h>

int main() {
    double result = 5.65;
    int grade;
    
    // 명시적 형변환을 사용하여 result(double)를 grade(int)로 변환합니다.
    
    printf("The grade is: %d\n", grade);
    
    return 0;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Fundamentals의 모든 레슨