변수와 자료형
C언어에서 데이터를 저장하는 방법. 학생의 이름, 나이, 키, 점수 등 다양한 데이터를 기억하고 활용하기 위해
변수(Variable)와 자료형(Data Type)의 원리를 익힙니다.
학습 목표
이번 단계를 완료하면 다음 내용을 이해하고 직접 구현할 수 있습니다.
int, float, double, char를 사용할 수 있다.sizeof()를 이용하여 자료형의 크기를 확인한다.변수란 무엇인가?
변수는 데이터를 저장하는 메모리 공간의 이름입니다. 사람의 정보를 저장한다고 생각해 보겠습니다.
| 변수 이름표 | 저장된 값 |
|---|---|
age |
20 |
score |
95 |
height |
175.5 |
grade |
A |
컴퓨터는 실제로 복잡한 메모리 주소에 데이터를 저장하지만, 우리는 변수 이름을 사용하여 편리하게 데이터를 관리합니다.
변수 선언과 값 저장
C언어에서는 사용하기 전에 반드시 변수를 선언해야 합니다.
int age;
이 코드는 다음과 같은 의미입니다.
int→ 정수를 저장하는 자료형age→ 변수 이름
즉, "정수를 저장할 수 있는 age라는 변수를 만든다"는 뜻입니다.
변수를 선언한 후 값을 저장합니다.
int age; // 변수를 생성 age = 20; // 변수에 값을 저장
선언과 초기화
변수를 만들면서 동시에 값을 저장할 수도 있습니다. 이것을 초기화(Initialization)라고 합니다.
int age = 20;
age = 20;
초기화(우측)는 프로그램을 작성할 때 가장 많이 사용하는 깔끔한 방법입니다.
자료형 (Data Type)
컴퓨터는 모든 데이터를 같은 방식으로 저장하지 않습니다. 숫자, 실수, 문자 등에 따라 저장 방식이 다른데, 이를 자료형이라고 합니다.
| 자료형 | 의미 | 예제 |
|---|---|---|
int |
정수 | 10, 25, -100 |
float |
실수 | 3.14 |
double |
정밀한 실수 | 175.523456 |
char |
문자 1개 | 'A', 'B', 'Z' |
각종 자료형 살펴보기
정수형 int
가장 많이 사용하는 자료형입니다. %d는 정수를 출력하는 형식 지정자입니다.
#include <stdio.h> int main() { int age = 25; printf("나이 : %d\n", age); return 0; }
실수형 float
실수를 저장할 때 사용합니다. %.1f는 소수점 첫째 자리까지 출력한다는 의미입니다.
#include <stdio.h> int main() { float height = 175.5; printf("키 : %.1f\n", height); return 0; }
정밀한 실수 double
double은 float보다 더 정밀한 실수를 저장할 수 있습니다. 과학 계산 등에서 주로 쓰입니다.
#include <stdio.h> int main() { double pi = 3.141592; printf("%.6lf\n", pi); return 0; }
문자형 char
문자 하나를 저장합니다. 문자는 반드시 작은따옴표('')를 사용합니다.
#include <stdio.h> int main() { char grade = 'A'; printf("등급 : %c\n", grade); return 0; }
'A'는 문자 1개 (작은따옴표), "A"는 문자열 (큰따옴표)입니다. C언어에서는 이를 엄격하게 구분합니다.
변수의 값 변경
변수는 이름 그대로 언제든지 값이 변할 수 있는 수입니다.
#include <stdio.h> int main() { int score = 80; printf("%d\n", score); score = 95; // 변수의 값을 변경 printf("%d\n", score); return 0; }
80 95
여러 개의 변수 사용하기
하나의 프로그램에는 여러 변수를 복합적으로 사용할 수 있습니다.
#include <stdio.h> int main() { char grade = 'A'; int age = 20; float height = 175.5; double weight = 68.25; printf("등급 : %c\n", grade); printf("나이 : %d\n", age); printf("키 : %.1f\n", height); printf("몸무게 : %.2lf\n", weight); return 0; }
sizeof() 알아보기
자료형은 각각 메모리를 차지하는 크기가 다릅니다. 이를 확인하는 함수가 sizeof() 입니다.
#include <stdio.h> int main() { printf("int : %d byte\n", sizeof(int)); printf("float : %d byte\n", sizeof(float)); printf("double : %d byte\n", sizeof(double)); printf("char : %d byte\n", sizeof(char)); return 0; }
int : 4 byte float : 4 byte double : 8 byte char : 1 byte
※ 컴퓨터 환경과 컴파일러에 따라 일부 자료형의 크기는 달라질 수 있습니다.
상수와 변수
변수는 값이 바뀔 수 있지만, 상수(Constant)는 값이 절대로 바뀌지 않습니다.
변수
int age = 20;
나이는 언제든 변경될 수 있습니다.
상수 (const)
const int YEAR = 2026;
앞에 const를 붙이면 절대로 변경할 수 없는 값이 됩니다.
형식 지정자 정리
printf() 함수를 사용할 때는 자료형에 맞는 올바른 형식 지정자를 사용해야 합니다.
int (정수)
%d
char (문자)
%c
float (실수)
%f
double (정밀실수)
%lf
실습 문제
이름 대신 문자 등급, 나이, 키, 몸무게를 변수에 저장하여 출력해 봅니다.
#include <stdio.h> int main() { char grade = 'A'; int age = 18; float height = 172.3; double weight = 65.8; printf("등급 : %c\n", grade); printf("나이 : %d\n", age); printf("키 : %.1f\n", height); printf("몸무게 : %.1lf\n", weight); return 0; }
변수를 이용하여 원의 넓이를 계산합니다. (공식: 넓이 = π * r * r)
#include <stdio.h> int main() { double radius = 5.0; double pi = 3.141592; double area; area = pi * radius * radius; printf("반지름 : %.1lf\n", radius); printf("원의 넓이 : %.2lf\n", area); return 0; }
학생의 국어, 영어, 수학 점수를 저장하고 총점을 계산합니다.
#include <stdio.h> int main() { int korean = 90; int english = 85; int math = 95; int total; total = korean + english + math; printf("국어 : %d\n", korean); printf("영어 : %d\n", english); printf("수학 : %d\n", math); printf("총점 : %d\n", total); return 0; }
평균(average)까지 계산해 보세요. 힌트: average = total / 3.0; (결과를 저장할 변수는 어떤 자료형이어야 할까요?)
STEP 02 미션
나만의 건강 정보 프로그램
변수를 이용하여 자신의 정보를 저장하고 화면에 출력하는 프로그램을 작성합니다.
조건
다음 변수와 자료형을 반드시 사용하세요.
age(int)height(float)weight(double)grade(char)
================================
나의 건강 정보
================================
나이 : 25세
키 : 175.5cm
몸무게 : 68.2kg
건강등급 : A
BMI 계산은 다음 단계에서 구현합니다.
================================
STEP 02 완료 체크리스트
- 변수 : 데이터를 저장하는 메모리 공간의 이름
- 자료형 : 데이터 종류 (
int,float,double,char) - 초기화 : 변수를 만들면서 동시에 값을 저장
- 특징 : 변수의 값은 코드가 실행되는 동안 언제든지 변경 가능