본문 바로가기
카테고리 없음

12.C언어-변수-자료형변환

by LevRuf 2015. 8. 10.
728x90
반응형
SMALL

d. 자료형 변환

자료형 변환이란 서로 다른 자료형의 형을 맞추어주기 위해 변환하는 방법이다.

 (자료형)변수&상수

위 처럼 변수 또는 상수의 자료형을 원하는 형식으로 변환하기위해 ()를 통해 형을 변환시킬 수 있다.

#include <stdio.h>

int main(int argc, char * argv[])

{

int num1;

float num2 = 367.78;

num1 = num2;

printf("num1 = %d\n", num1);

}

num2에 실수가 들어가 있어 정수형으로 num1을 선언했다.

실수를 정수에 대입할 경우 소수점 이하의 내용이 버려지고 정수부분만 정수형 변수에 대입되게 된다.

이러한 형식으로 실수를 정수로 변형할 수 있다.

#include <stdio.h>

int main(int argc, char * argv[])

{

int num1 = 25, num2 = 3;

printf("num1/num2 = %d\n", num1/num2);

printf("num1/num2 = %f\n", (float)num1/(float)num2);

printf("num1/num2 = %d\n", num1 * num2);

}

 정수 / 정수 = 정수

 

C언어에서는 정수 / 정수는 정수의 결과를 얻게 된다.  

위의 코드에서 첫번째 출력문은 25/3을 하여 8.333333이 출력되어야 하지만 정수를 연산한 것이므로 8이라는 결과만 나타나게 된다.

다음 줄에 나타는 코드는 정수 앞에 괄호를 이용한 형변환을 처리하여 정수를 두번째 줄에서만 실수화 시켜 연산하겠다는 내용이다.

결국 실수 / 실수로 연산됨으로 실수가 나타나게 된다.

다음 줄에서는 두 정수형 변수가 이전 코드에서 실수가 되었음으로 실수연산으로 다음줄도 처리될 것이라고 생각할 수도 있지만 괄호를 이용한 형변환은 현재 줄만 적용됨으로 다음줄에 나타나는 값은 정수 * 정수로 연산이 이루어 지게 된다.

728x90
반응형
LIST

댓글