강제 형 변환 — 캐스팅과 정수·실수 나눗셈 | 기초 C언어 5.3.2

기초 C언어Chapter 05 연산자 › Section 03 기타 연산자 › 02

5.3.2 강제 형 변환

컴파일러가 알아서 맞추는 자동 변환과, 괄호로 자료형을 적어 직접 바꾸는 강제 변환. 정수 나눗셈을 실수로 받는 법.

교재 수록 위치
교재
『기초 C언어』 · 이은상 · 부크크 · 364쪽
단원
Chapter 05 연산자 › Section 03 기타 연산자 › 02 강제 형 변환
쪽수
142p ~ 145p4쪽
세부 내용
03 강제 형 변환 (Casting)142p~145p · CODE 5.12 · 5.13
학습 목표
강제 형 변환을 쓸 수 있고, 자동 변환과의 차이를 설명할 수 있다.

01자료형을 바꾸는 두 갈래교재 142p

자료형을 바꾸는 길은 둘 — 컴파일러가 알아서 바꾸는 쪽과 프로그래머가 시켜서 바꾸는 쪽.

1자동 형 변환

  • 연산의 편의를 위해 컴파일러가 알아서 바꿔 주는 것.
  • 5.1.1 에서 본 「둘 중 하나만 실수면 실수 나눗셈」이 그 예.

2강제 형 변환 (Casting)

  • 강제 형 변환(Explicit Type Conversion) — 프로그래머가 명시적으로 원하는 자료형으로 바꾸는 것.
  • 짧게 부르는 이름이 캐스팅.
  • 잠시 다른 옷을 입히는 일 — 연산이 끝나면 원래 자료형으로 돌아옴. 변수 자체의 자료형이 영구히 바뀌지는 않음.

02형 변환 연산자 — 괄호로 감싼 자료형교재 142p

  • 값의 왼쪽에 적음 — 바꾸고 싶은 변수나 값의 왼쪽에, 괄호 () 로 새로운 자료형을 감싸서 표현함.
  • (double)a — 정수 a 를 잠시 실수로. (int)pi — 실수 pi 를 잠시 정수로. 방향은 양쪽으로 열려 있음.
  1. (새로운_자료형) 변수_또는_값

03정수 나눗셈의 결과를 실수로 얻기교재 142p~143p

  • 그릇만 키워서는 안 됨 — 10 / 4 는 정수끼리 나누어 몫 2 만 남으므로, 그 2 를 double 변수에 담아도 2.0 일 뿐. 원하던 2.5 는 얻지 못함.
  • 나눗셈 자체를 실수 나눗셈으로 — (double)a 가 붙으면 식이 10.0 / 4 가 되고, C언어 규칙에 따라 다른 피연산자 b 도 double 로 따라 바뀌어 결과 2.5.
  1. result1 = a / b;
  2. result2 = (double)a / b;

04거꾸로 — 의도적인 데이터 손실교재 144p~145p

  • 실수를 정수로 — num = (int)pi; 처럼 소수점 이하를 일부러 버릴 때도 씀.
  • 반올림이 아니라 버림(truncation) — 3.14159 의 정수 부분 3 만 남음. 3.9 였더라도 결과는 3.

전체 코드와 줄별 해설은 교재 142p~145p CODE 5.11 · CODE 5.12 에 있습니다.

05답을 가르는 자리 — 차례와 방향교재 143p~145p

여기서 자주 틀림

  • 형 변환은 나눗셈 직전에 적용됨 — 계산이 끝난 뒤에 큰 그릇에 담는 것과, 계산 전에 자료형을 바꾸는 것은 서로 다른 일. 이 차례 하나가 답을 가름.
  • 괄호는 값의 왼쪽 — 뒤에 붙이면 뜻이 통하지 않음.
  • 좁은 쪽으로 갈 때는 잃음 — 알지 못한 채 잃는 것이 아니라, 알고서 덜어 내는 쓰임.

이 절의 핵심 정리

  1. 컴파일러가 알아서 바꾸면 자동 형 변환, 프로그래머가 시켜서 바꾸면 강제 형 변환이다.
  2. 캐스팅의 꼴은 (자료형)값으로, 괄호는 값의 왼쪽에 붙는다.
  3. a / b를 double에 담아도 2.0, (double)a / b라야 2.5다.
  4. (int)pi는 반올림이 아니라 소수점 이하를 그대로 버린다.
  5. 캐스팅은 그 연산 동안만이며, 변수 자체의 자료형이 영구히 바뀌지는 않는다.
강의 자료5.3.2 강제 형 변환 1 / 10

번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다
다음 절 · 5.4.1 연산자 우선순위 교재 146p~148p — 한 식에 연산자가 여럿일 때 어느 것을 먼저 계산하는지 살펴봅니다. ↗

더 자세한 내용은 교재에서

이 글은 『기초 C언어』 142p~145p의 내용을 강의 영상에 맞춰 핵심만 간추린 요약입니다. 각 개념의 상세한 설명과 예제, 실습 코드, 임용시험 기출문제 풀이는 교재에서 다루고 있습니다.

댓글

이 블로그의 인기 게시물

2007년 국가직 9급 기계일반 기출문제 풀이

열역학의 개요 — 계·상태량·열과 일, 제1·제2법칙 | 기초 열역학 1.1