본문 바로가기

강의자료/C/C++

004. 형변환(Casting)이란?

◈ 이 글은 강의를 위하여 제가 직접 작성한 내용입니다. 따라서 퍼가실 경우, 출처를 명확히 해주시기 바랍니다!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!


형변환이란, 자료형(데이터의 타입)을 일시적으로 다른 자료형으로 변환하는 것을 말한다.
또한, 변수뿐만이 아니라 상수에도 자료형이 존재함을 이해해야 한다.
#include 
using namespace std;

void main()
{
	int a = 95;		// 국어점수.
	int b = 86;		// 수학점수.
	int c = 94;		// 영어점수.

	int sum = a + b + c;		// 합계.

	// 평균 구하기.
	//int average = sum / 3;		// average는 정수만 저장 가능.
	//double average = sum / 3.0;	// 저장하기 전 계산 결과가 이미 int형이다.
	//double average = (double)sum / 3;	// sum을 임시로 double타입으로 변환.
	//double average = double(sum) / 3;
	double average = static_cast(sum) / 3;

	// 숫자(상수)에도 타입이 존재한다.
	// 3 -> int, 3.14f -> float, 3.14 -> double
	// int (연산) int -> int
	// int (연산) float -> float
	// int (연산) double -> double
	// anyType (비교연산자) anyType -> bool (조건식의 결과값은 bool형이 된다. 이건 나중에 설명.)

	// int형 (연산) int형 -> 그 결과도 int형이 된다.
	// 275 / 3 = 91.xxx => 91;
	// int형 (연산) float형/double형 -> 그 결과는 float형/double형이 된다.
	// 275 / 3.0 = 91.xxx

	cout << "총점 = " << sum << ", 평균 = " << average << endl;
}