형변환(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이 된다. 소수부가 손실된 것이다.
반응형
'Computer Science > [프로그래밍 언어론]' 카테고리의 다른 글
[프로그래밍 언어론] 명령형(Imperative)프로그래밍과 선언형(Declarative)프로그래밍 (0) | 2022.07.03 |
---|---|
[프로그래밍 언어론] C/C++/JAVA/Python 비교, 프로그래밍 언어 순위, C++와 Java 차이 (0) | 2022.06.22 |
[프로그래밍 언어론] 객체 지향 설계 5원칙 (SOLID)란? (0) | 2022.02.16 |
[프로그래밍 언어론] 컴파일러와 인터프리터의 차이점 (0) | 2022.02.10 |
[프로그래밍 언어론] 객체 지향 프로그래밍(OOP : Object Oriented Programming)란? OOP의 장단점 (0) | 2022.01.18 |