형 변환 파트 1
Coddy C 여정의 기초 섹션에 포함된 레슨. 63개 중 13번째.
C에서 형 변환을 사용하면 값을 한 데이터 형식에서 다른 데이터 형식으로 변환할 수 있습니다. 이는 서로 다른 데이터 형식 간에 연산을 수행해야 할 때 유용합니다.
두 가지 주요 유형의 형 변환이 있습니다:
- Implicit casting (자동)
- Explicit casting (수동)
암시적 형변환부터 시작해 보겠습니다:
더 작은 데이터 유형에서 더 큰 데이터 유형으로 변환할 때 Implicit 캐스팅은 automatically 발생합니다:
int num = 10;
double decimal_num;
// int에서 double로의 암시적 형변환
decimal_num = num;위 코드를 실행한 후 decimal_num은 10.0 값을 갖게 됩니다.
이는 double이 데이터를 잃지 않고 int의 가능한 모든 값을 저장할 수 있기 때문에 작동합니다. 변환은 안전하므로 C가 이를 automatically 수행합니다.
일반적인 암시적 캐스팅 경로:
- char → int → long → float → double
이제 명시적 형 변환을 살펴보겠습니다:
Explicit casting은 변환하려는 값 앞의 괄호 안에 대상 데이터 형식을 배치하여 수동으로 수행합니다. 데이터 손실이 발생할 수 있는 더 큰 데이터 형식에서 더 작은 데이터 형식으로 변환할 때 필요합니다:
double decimal_num = 5.65;
int num;
// double에서 int로의 명시적 형변환
num = (int)decimal_num;위 코드를 실행한 후 num은 5 값을 갖게 됩니다
double에서 int로 casting할 때 소수 부분이 반올림되지 않고(rounded) 잘린다는 점에 유의하세요(truncated). explicit casting의 구문은 다음과 같습니다:
(target_type) value이 변환으로 인해 데이터가 손실될 수 있으므로, C에서는 이를 명시적으로 수행해야 합니다. 이는 잠재적인 데이터 손실을 인지하고 있음을 컴파일러에 알립니다.
챌린지
쉬움다음과 같은 프로그램을 작성하세요:
- double 변수
result를 선언하고 5.65로 설정합니다 - int 변수
grade를 선언합니다 - 명시적 형 변환을 사용하여
result의 값을grade에 할당합니다 - printf를 사용하여 "The grade is: " 메시지와 함께
grade의 값을 출력합니다
직접 해보기
#include <stdio.h>
int main() {
double result = 5.65;
int grade;
// 명시적 캐스팅을 사용하여 result (double)를 grade (int)로 변환합니다
printf("The grade is: %d\n", grade);
return 0;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 C 컴파일러