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