훈, IT 공부/C,C++,MFC

[기초바로잡기]형승격(type promotion)

IT훈이 2017. 12. 27.
반응형

형승격이란?


 자료형을 연산하면 어떠한 자료형으로 형태가 변하게 됩니다.

이러한 과정을 형 승격이라 합니다.


예를들어 보겠습니다.
int a = 10;
double b = 10.0;
printf("%d\n",a+b);
printf("%f\n",a+b);

연산 결과 
0
20.000000
계속하려면 아무 키나 누르세요 . . .


연산 결과를 보면 a+b를 하게 되는데 결과 값은 


형식문자 %d로는 출력이 되지 않고 %f 형식문자로 출력이 됩니다.


이러한 이유는 형 승격에 의한 것입니다.


형승격이 동작되는 방식은 연산을 하였을때 자료형의 크기가 더 큰 것을(표형범위가 넓은 형식) 따른다는 것입니다.



int + double = double


int  4byte double 8byte 이기에 자료형의 크기기 더 큰 double을 따릅니다.


다른 예를 들어보면 



char + int = int


char 1byte int 4byte 이기에 자료형의 크기가 더 큰 int를 따릅니다.

반응형

댓글