본문 바로가기
프로그래밍언어/C언어

자료형 변환 - 자동형변환(산술연산자) part1

by J코딩 2021. 12. 30.
반응형
지금가지 살펴본 것처럼 프로그램에서 사용되는 데이터는 자료형에 따라 표현 범위가 다릅니다.
자료형이 다양한 C 언어에서 복합적인 연산 수식이 요구될 때는 가급적 같은 자료형 간에 연산이 이루어지는 것이 좋습니다.
그러나 불가피하게 다른 자료형 간의 연산이 이루어져야 하는 경우가 빈번히 발생하는데 이렇게 서로 다른 자료형 간에 연산을 하게 되면 자료형의 변환이 일어납니다.
예를 들어, int형 데이터를 float형으로 변환하거나 float형 데이터를 double형 데이터로 변환하는 것을 말합니다.
자료형의 변환에는 두 가지 방식이 있습니다. 첫째로 자동 형변환이 있고, 둘째로 강제 형변환이 있습니다.
자등 형변환은 컴파일러가 자등으로 해주는 것이고, 강제 형변환들은 프로그래머가 강제로 해주는 것입니다. 지금부터 각각을 알아보기로 하겠습니다.

 

컴파일러가 자동으로 형변환을 해준다 - 자동 형변환

 

C 언어로 작성한 코드에 프로그래머가 의도하지 않았지만 컴파일러가 자동으로 해주는 자료형의 변환을 자등 형변환이라고 합니다.

 

다른 자료형 간에 산술 연산을 하는 경우에 자동 형변환이 일어난다.


정수 + 실수 또는 실수 + 정수와 같이 산술 연산을 하는 것으 되면 자들 간의 자르이 다르면 컴파일러가 자동 형변환의 우선순위에 의해서 피연산자를 자동으로 자료형을 변환해서 피연산자들의 자료형을 같게 하고서 연산을 수행합니다.


자료형 변환의 우선순위에 따르면 연산에 참여하는 피연산자의 자료형은 정밀도가 작은 자료형이 큰 자료형으로 변환됩니다. 다음은 자료형 변환의 우선순위를 나타내고 있습니다.


다음 예제를 가지고 자동 형변환의 우선순위를 함게 이해해 보겠습니다

 

6행에서 정수 + 실수의 산술 연산을 수행하는데 변수 numl을 double형으로 변환해서 실수 + 실수를 수행합니다. 이 과정에서 변수 num1이 int형에서 double형으로 자동으로 자료형이 변환되어 값이 출력됩니다.

변수 numl이 double형으로 형변환된 이유는 피연산자 num2가 num1보다 더 큰 자료형인 double형이기 때문입니다.

 

반응형

댓글