본문 바로가기
2024 C언어 강의

5강 C언어 - 자료형에 대해서 공부하자 (int, float, double, char)

by 여름코딩 2024. 3. 11.
반응형

안녕하세요 판타지코딩월드입니다.

 

저번 시간에는 변수를 생성하고 데이터를 저장하는 방법을 공부해 보았습니다.

 

변수를 생성하고 데이터를 저장하는 과정에서 메모리 공간을 어떻게 할당 받고, 데이터를 저장하는지 공부했기 때문에 변수 생성 방법 뿐만 아니라 생성 과정에서 메모리를 어떻게 사용하는지도 함께 이해가 되었을 겁니다.

 

오늘은 변수 생성을 위해 우리가 고려해야 하는 자료형, 즉 데이터 타입에 대해서 공부해 보겠습니다.

 

흔히 int, float, double, char 등의 자료형을 많이 접해보셨을겁니다.

 

이러한 자료형은 각각 어떤 차이가 있기에 굳이 구분하면서 코드를 작성해야 하는지 알아보는 시간을 갖도록 하겠습니다.

 


1. 자료형이 무엇일까?

 

자료형은 데이터의 형식을 의미합니다.

 

예를 들어 숫자 1은 정수, 1.5는 실수, 'a'는 문자라고 할 수 있습니다.

 

변수를 생성할 때에는 이러한 데이터를 담기 위해서 변수의 '자료형'을 미리 설정하고 알맞은 데이터를 저장해야 합니다.

 

그렇지 않으면 컴파일을 진행할 때 오류가 발생하므로 프로그램 실행이 불가능하게 됩니다.

 

 

2. int형 (정수형)

 

int형은 정수형을 의미합니다.

 

1, 2, 3, 10, 100 모두 정수입니다.

 

그런데 소수점 이하 자릿수가 없다고 해서 모두 int형으로 포괄하지는 않습니다.

 

그 이유는 숫자의 범위가 있기 때문입니다.

 

int형의 범위는 -2,147,483,648 ~ 2,147,483,647 입니다.

 

즉, 이 범위를 넘어가는 숫자는 int형 변수에 담을 수 없다는 의미입니다.

 

그런데 이 범위는 signed int 임에 유의하세요!

 

unsigned int는 0 ~ 4,294,967,295 까지의 범위를 다루므로 해당 내용을 숙지하시고 활용하시면 됩니다.

 

정수형에는 int가 있다면, 이번에는 실수형을 알아보겠습니다.

 

 

3. float (실수형)

 

float형은 실수 데이터를 다룰 수 있습니다.

 

int형과 마찬가지로 4바이트입니다.

 

대학교 2학년 쯤 변수에 3.14를 담아서 출력해 오라는 숙제를 받았었는데, 그 답이 바로 여기에 있었습니다.

 

int형 변수에 3.14를 담으면 소수점 이하 자리는 무시되고 3이 출력됩니다.

 

그래서 실수형 변수인 float형을 생성해서 데이터를 적용해야 했던 것입니다.

 

간단한 문제인데 왜 그렇게 어려웠는지 모르겠습니다만, 아마 교수님께서 프로그래밍을 제대로 학습하기 전 혼자서 생각해볼 시간을 주려고 내주신 과제인 것 같습니다.

 

float형과 마찬가지로 double형도 실수인데, 8바이트의 데이터를 다룰 수 있습니다.

 

 

4. char (문자형)

 

char형은 문자를 표현하기 위한 자료형입니다.

 

1바이트이기 때문에 문자나 숫자를 1개 저장할 수 있습니다.

 

여기서 문자형인데 왜 숫자를 저장하나요? 라는 의문이 들 수 있습니다.

 

char형의 경우 데이터를 작은 따옴표 ('') 안에 작성해서 저장하게 됩니다.

 

그래서 문자형으로 저장한다고 이해하면 됩니다.

 

간단히 예제 코드를 살펴보면 아래와 같습니다.

char num = '1';

 

이렇게 작성하면 숫자 데이터지만, 문자로 저장하게 됩니다.

 

변수 생성 및 데이터 저장 과정은 아래 예제 코드로 살펴보겠습니다.

 

 

5. 예제 코드

 

위의 학습한 내용을 토대로 예제 코드를 작성해서 각 자료형의 활용 방법을 알아보겠습니다.

int num1 = 1;
float num2 = 1.5;
char a = 'a';

printf("%d", num1);  //int형 변수
printf("%f", num2);  //float형 변수
printf("%c", a);     //char형 변수
 
1
1.500000
a

 

출력 결과를 하나씩 살펴보겠습니다. (편의상 한 줄씩 개행을 해줬다고 가정하겠습니다.)

 

num1은 int형이기 때문에 범위에 해당하는 정수 1을 저장했고, 그대로 출력되었습니다.

 

num2는 float형이기 때문에 실수 1.5를 저장했고, 소수점 아래 6자리가 출력되었습니다.

 

float형을 출력할 때에는 '%f'라고 작성해 주어야 소수점 아래 데이터까지 확인할 수 있습니다.

 

a는 char형이므로 문자를 저장할 수 있습니다.

 

작은 따옴표 안에 작성한 데이터가 그대로 출력됩니다.

 

char형에 대해서 예제 코드를 더 보겠습니다.

char a = 'abc';
char b = '123';

printf("%c\n", a);
printf("%c\n", b);
 
c
3

 

아까 예제 코드랑 다른 점은 문자를 여러개 저장했다는 점입니다.

 

char형은 1바이트이기 때문에 1개 문자만 저장할 수 있습니다.

 

그래서 가장 마지막에 입력한 데이터만 저장되고, 출력할 수 있는 것입니다.

 

그리고 '123' 또한 작은 따옴표 안에 작성했기 때문에 문자로 저장이 된 것입니다.

 

 

6. 자료형 별 크기

 

자료형 별 몇 바이트를 차지하는지 알아두시면 변수 생성에 도움이 될 것입니다.

 

특히 char형의 경우 1개의 문자가 저장 가능하다는 것 숙지하시고, 어떻게 하면 여러개의 문자를 저장할 수 있을지 생각해보시면 좋겠습니다.

 

정수형 int 4byte
실수형 float 4byte, double 4byte
문자형 char 1byte

오늘은 여러 가지 자료형에 대해 학습해 보았습니다.
 
int, float, double, char 각각의 자료형의 특징과 활용 방법을 이해하고 연습해 보시면 좋겠습니다.
 
감사합니다!
반응형