강좌 & 팁
글 수 2,412
2011.11.13 10:24:40 (*.138.143.120)
56389
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가 되었다.