본문 바로가기
Develop/C

6 C언어 형 변환

by 구운밤이다 2016. 6. 27.
728x90
반응형

2016/06/26 - [컴퓨터/C언어] - 5 C언어 입력과 자료형


안녕하세요 오늘은 C언어의 자료 형 변환에 대해서 알아보도록 할게요 형 변환은 자동 형 변환이 있고 강제 형 변환이 있어요~ 먼저 자동 형 변환에 대해 알아보도록 할게요!


자동 형 변환


자동형 변환은 데이터 손실을 최소화하는 방향으로 진행 됩니다 그 순서는 다음과 같아요


예를 들어 형이 다른 int 형과 double 형을 더한다, 그러면 화살표의 방향대로 int 가 double로 바뀌어 연산이 진행됩니다


예제를 통해서 보면

#include <stdio.h>

int main() {

    int num1=3;

    double num2 = 5;

    

    printf("%d", num1 + num2);

}

이렇게 하면 

이렇게 나와요 ㅠㅠ 왜 그럴까요?? 바로 덧셈 연산이 double 형으로 형변환이 된 후 진행 되었기 때문입니다!!따라서 double형으로 바뀌었기 때문에 %d로는 출력이 되지 않는 것이죠!

그렇다면 %d 를 %lf로 바꾸면?  

이렇게 정상적인 결과가 나오죠!

이번엔 강제 형 변환에 대해서 알아보도록 하죠!


강제 형 변환


강제 형변환은 변수의 자료형을 강제로 변환시켜서 연산을 하게 해주는 장치입니다

예를 들어 이 예제를 실행시켜보면

#include <stdio.h>


int main() {

    int num1=9, num2 = 12;

    double num3 = num1 / num2;

    

    printf("%lf", num3);

}


또 이렇게 0이 나오고 말죠... 이번엔 왜 그럴까요??

바로 int 형으로 나눗셈 연산을 하면 0이란 결과가 나오고 그 이후 double 값에 0이 저장되기 때문입니다

그럼 이 예제를 실행 시켜 보겠습니다

#include <stdio.h>


int main() {

    int num1=9, num2 = 12;

    double num3 = (double)num1 / num2;

    

    printf("%lf", num3);

}


이 예제를 실행시키면 num1이 double형으로 변환된 뒤 num2 도 double 형으로 자동 형 변환 되어 연산하기 때문에 0.75라는 값이 나올 수 있는 겁니다!!


모르는 것은 댓글이나 쪽지로 남겨주시면 성심 성의껏 답변해드리겠습니다!! 댓글공감구독(이웃추가)는 블로거에게 큰 힘이 됩니다! 부탁드리면서 이번 포스팅을 마치도록 하겠습니다! 지금까지 딘또였습니다

728x90
반응형

'Develop > C' 카테고리의 다른 글

8 C언어의 조건문  (0) 2016.06.29
7 C언어의 반복문과 특수문자!!  (0) 2016.06.27
5 C언어 입력과 자료형  (2) 2016.06.26
4 C언어 비트연산자  (7) 2016.06.26
3 C 언어의 연산자  (2) 2016.06.24

댓글