[프로그래밍 언어론] 형변환이란? 묵시적 형변환 과 명시적 형변환에 대하여

형변환(Type Conversion)이란?

 

int a = 10;
float b = 1.2;
printf("%d", a+b);

 

형변환이란 데이터의 타입을 변경하는 것이다. 예를 들어 위와 같이 데이터 타입이 다른 두 변수를 더하는 연산을 하려고 하면 어떻게 될까? 오류가 발생하지는 않고 묵시적 형변환이 일어나게 된다. 

 

묵시적 형변환(Implicit Type Conversion)이란?

묵시적 형변환이란 컴파일러에 의해 자동으로 형변환이 이루어지는 것을 말한다. 

예를 들어 int a 와 float b를 더할 때 int a는 자동으로 float형으로 형변환이 이루어진다. 

 

묵시적 형변환 규칙

묵시적 형변환은 위 그림처럼 표현 범위가 좁은 데이터 타입에서 -> 넓은 데이터 타입으로의 변환만 허용된다. 예를 들어 int 형은 double 형으로 형변환 될 수 있지만 double 형은 int형이 될 수 없다. 

 

명시적 형변환(Explicit Type Conversion)이란?

int a = 10;
double b = 1.3;

int result = a + (int)b;	// 결과 : 11

명시적 형변환이란 사용자가 직접 데이터의 타입을 변경하는 것이다. 위 코드와 같이 사용자가 double 형을 int 형으로 형변환 할 수 있다. 묵시적 형변환과 다르게 표현 범위가 넓은 데이터 타입에서 좁은 데이터 타입으로의 변환이 허용된다. 하지만 데이터의 값이 손실될 수 있다. double 값이 1.3일 때 int형으로의 변환이 이루어지면 값은 1이 된다. 소수부가 손실된 것이다.

 

 

반응형

댓글

Designed by JB FACTORY