2.8.6 캐스트 연산자

산술연산의 경우 int + float와 같이 두 피연산자의 자료형이 다를 때 시스템이 자동으로 int형을 float 형으로 변환시킨 다음, 덧셈 연산을 수행한다. 캐스트 연산자는 프로그램 내에서 명시적으로 자료형을 변환시킨다.

(자료형) 수식

수식의 결과값을 괄호속의 자료형으로 바꾸라는 의미이다. 만약 a = 2, b =4.8 이로고 하면, (a+b) 라는 산술식을 계산할 때는, a는 2.0으로 내부적으로 자동 변환이 이루어진다. 다음의 예를 통해서 명시적으로 형변환이 이루어지는 경우를 보자

#include <stdio.h>

int main()
{
    int a = 15;   
    int b = 4;
    float c = 0;

    c = a / b;
    printf("%f\n",c);

    c = (float)a / b;
    printf("%d\n",c);

    return 0;
}

 

c = a / b 부분에서는 형변환이 없이 나누기가 실행된 경우이다. 산술연산의 결과값은 피연산자의 자료형과 같기 때문에 연산의 결과는 3이 된다.

 

c = (float)a / b부분은 a가 명시적으로 float 형으로 변환되고, 따라서 b가 자동적으로 float 형으로 변환 된다. 따라서 결과값은 3.750000가 되었다.

 

연산자4-1.png