형 변환 파트 2
Coddy C 여정의 Fundamentals 섹션에 포함된 레슨 — 63개 중 14번째.
1부에서는 암시적 형 변환(implicit type casting)에 대해 살펴보았습니다. 이제 C 언어에서의 명시적 형 변환(explicit type casting)에 대해 알아보겠습니다.
명시적 형 변환(수동 변환)은 캐스트 연산자를 사용하여 하나의 데이터 타입을 다른 타입으로 강제 변환하는 것을 말합니다.
명시적 형변환(explicit casting)의 구문은 다음과 같습니다:
(target_type) expression부동 소수점(float)을 정수(integer)로 변환해 봅시다:
float price = 45.95;
int rounded_price = (int) price;위 코드를 실행한 후, rounded_price는 다음과 같습니다:
45
소수 부분은 반올림되지 않고 절삭(버림)된다는 점에 유의하세요.
문자를 정수로 캐스팅하여 ASCII 값을 얻을 수도 있습니다:
char letter = 'A';
int ascii_value = (int) letter;위 코드를 실행한 후, ascii_value는 다음과 같습니다:
65
기억하세요, 형 변환(type casting)은 특히 더 큰 데이터 타입에서 더 작은 데이터 타입으로 변환할 때 데이터 손실을 초래할 수 있습니다.
챌린지
쉬움다음과 같은 프로그램을 작성하세요:
temperature라는 이름의 double 변수를 선언하고 98.6이라는 값을 할당합니다.- 명시적 타입 캐스팅(explicit type casting)을 사용하여
temperature를 정수로 변환하고whole_part라는 이름의 변수에 저장합니다. - 원본 온도와 정수 부분을 각각 별도의 줄에 출력합니다.
출력 예시:
Original temperature: 98.6
Whole part: 98
치트 시트
C 언어에서 명시적 형 변환(Explicit type casting)을 사용하면 캐스트 연산자를 사용하여 하나의 데이터 타입을 다른 타입으로 수동으로 변환할 수 있습니다.
구문:
(target_type) expressionfloat을 정수(integer)로 변환 (소수점 이하 절삭):
float price = 45.95;
int rounded_price = (int) price; // 결과: 45문자를 정수(integer)로 변환 (ASCII 값 획득):
char letter = 'A';
int ascii_value = (int) letter; // 결과: 65참고: 더 큰 데이터 타입에서 더 작은 데이터 타입으로 변환할 때 형 변환으로 인해 데이터 손실이 발생할 수 있습니다.
직접 해보기
#include <stdio.h>
int main() {
// 여기에 코드를 작성하세요
return 0;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.