Frozen0113 2013. 2. 13. 16:27

- 형 변환

 자료형은 프로그램에서 사용되는 변수와 상수에 대한 규정이다. 그렇다면, 한번 정해진 자료형은 변환할 수 없는가? 그렇지 않다.

일시적으로 형을 변환시키는 명시적 형 변환이라 한다.

 

- 소스 코드 예시

 

int   a = 10;

float b = 5.0f;

 

a = b;

 

 

컴파일 시 경고가 뜬다. 자료형이 일치하지 않기 때문에 경고가 발생한다. 이때 형 변환을 하면 경고가 사라진다

 

a = b    =>  a = (int) b;    (변환할 자료형) 변환할 변수나 값;

 

 

경고가 사라진 것을 볼 수 있다. 변수이외에 상수에도 형 변환이 가능하다. Ex> int a = (int) 10.0f;

하지만 이건 너무 실용적이지 못한 행동이니 자제하자.

 

그렇다면 명시적 이외에 암묵적 형 변환은 연산시에 서로 다른 자료형인 경우 자동으로 큰 자료형으로 형을 변환시켜 연산을 한다. 이런 경우를 암묵적 형 변환이라고 한다.

 

- 소스 코드 예시

 

int a = 7, b = 5;

float c = 7.0f, d = 5.0f;


 std::cout << "실수와 정수 나누기 연산 " << std::endl;
 std::cout << a << " / " << d << " = " << a / d << std::endl;


 std::cout << "정수와 실수 나누기 연산 " << std::endl;
 std::cout << c << " / " << b << " = " << c / b << std::endl;

 

 

 

빌드 시에도 경고가 없다.

 

정수와 실수의 위치 순서는 상관이 없다.

 

 

 

 

- 출처 : 열혈강의 C++ 언어본색

※ 책을 보고 공부한 내용을 개인의 생각을 담아 정리하였기때문에 내용이 책과 다를 수 있습니다.