[C언어][초급] Chapter12. 기본 자료형 – int, float, char의 의미와 역할
프로그래밍에서 데이터를 다루기 위해서는 먼저 "이 값이 어떤 종류의 데이터인가?"를 알아야 합니다.
예를 들어 나이는 정수, 키는 실수, 성별은 문자처럼 각각의 데이터에 맞는 자료형을 사용하는 것이 중요합니다.
C언어에서는 데이터를 효율적으로 저장하고 처리하기 위해 다양한 **기본 자료형(primitive data type)**을 제공합니다.
이번 글에서는 C언어에서 가장 기본이 되는 int, float, char 자료형과 그 특징을 정리해보겠습니다.
● 자료형이란?
**자료형(data type)**이란, 변수에 어떤 종류의 데이터를 저장할 것인지를 지정하는 것입니다.
자료형을 지정하면 메모리의 크기, 표현할 수 있는 값의 범위, 연산 방식 등이 정해집니다.
● 대표적인 기본 자료형
자료형 | 설명 예시 | 값 | 메모리 크기(기본) |
int | 정수 (양수/음수/0) | -10, 0, 42 | 4바이트 (32bit) |
float | 소수 포함 실수 | 3.14, -0.5 | 4바이트 |
double | 더 정밀한 실수 | 3.141592 | 8바이트 |
char | 문자 1개 (ASCII 문자) | 'A', 'b' | 1바이트 |
※ 위 크기는 시스템에 따라 다를 수 있으나, 대부분의 환경에서는 위와 같은 크기를 기본으로 가집니다.
● int – 정수형
정수 값을 저장할 때 사용하는 자료형입니다.
int age = 25;
int temperature = -10;
- 소수점은 포함할 수 없습니다.
- 범위는 보통 -2,147,483,648 ~ 2,147,483,647 (4바이트 기준)
● float – 실수형
소수점이 있는 값을 저장할 수 있습니다.
float pi = 3.14;
float score = -0.75;
- 기본적으로 소수점 아래 6자리 정도까지 표현됩니다.
- 더 정밀한 계산이 필요할 경우 double을 사용할 수 있습니다.
● double – 배정밀도 실수형
float보다 더 큰 범위와 더 많은 소수 자릿수를 표현할 수 있습니다.
double accuratePi = 3.1415926535;
- 소수점 아래 15자리 이상까지 표현 가능
- 메모리를 더 많이 사용하지만 정밀한 계산에 유리함
● char – 문자형
하나의 문자를 저장하는 자료형입니다.
char grade = 'A';
char symbol = '#';
- 문자 하나를 작은따옴표 ' '로 감싸서 표현합니다.
- 내부적으로는 문자도 숫자로 처리됩니다 (ASCII 코드).
● 여러 개의 변수 한 줄에 선언하기
같은 자료형이면 한 줄에 여러 변수를 동시에 선언할 수 있습니다.
int a = 1, b = 2, c = 3;
float x = 1.5, y = -2.0;
● 자료형에 따라 연산 결과가 달라질 수 있어요
정수형과 실수형을 혼합해서 연산할 때는 **자료형 변환(type conversion)**이 일어나기도 하며, 이를 정확히 이해하는 것이 중요합니다.
예를 들어:
int a = 5;
int b = 2;
printf("%f\n", a / b); // 결과: 0.000000 (int 나눗셈이라 2.5 → 2 → 0)
이럴 땐 하나를 float로 변환해야 제대로 된 결과가 나옵니다.
printf("%.1f\n", (float)a / b); // 결과: 2.5
각 자료형을 이해하고 상황에 맞게 선택하는 것은 C언어 프로그래밍의 가장 기본이자 핵심입니다.
실습 문제
아래 문제는 직접 코드를 작성해보고, 실행 결과를 확인한 후 스스로 정답을 유추해보는 형태입니다.
정답은 바로 아래에서 확인할 수 있습니다.
문제 1
정수형 변수 age에 25를 저장하고, printf를 이용해 아래처럼 출력해보세요.
나이: 25살
문제 2
실수형 변수 temperature에 36.5를 저장하고, 소수점 첫째 자리까지만 출력하세요
현재 체온: 36.5도
.
문제 3
문자형 변수 grade에 'B'를 저장하고 출력하세요. 단, 작은따옴표를 사용하세요.
당신의 등급은 B입니다.
문제 4
다음 코드의 출력 결과를 예상해보세요.
int a = 7, b = 2;
printf("%.1f\n", a / b);
문제 5
정수형 변수 a = 5, 실수형 변수 b = 2.0이 있을 때, 두 값을 더해 정확한 결과를 출력하도록 코드를 완성하세요.
▶ 정답 확인하기
정답 1
int age = 25;
printf("나이: %d살\n", age);
정답 2
float temperature = 36.5;
printf("현재 체온: %.1f도\n", temperature);
정답 3
char grade = 'B';
printf("당신의 등급은 %c입니다.\n", grade);
정답 4
출력 결과: 3.0
설명: a와 b가 모두 int형이라서 a / b = 3
그러나 %.1f로 출력했기 때문에 실수형으로 변환되어 3.0 출력
정답 5
int a = 5;
float b = 2.0;
printf("결과: %.1f\n", a + b);