[C언어 기초] 자료형부터 변수 선언, 출력까지! 완전 정복 가이드
C언어를 처음 배우는 분들을 위해 기본 개념부터 실전에서 자주 쓰이는 출력 형식 지정자까지 꼼꼼히 정리했습니다. 이 글을 통해 변수의 자료형, 변수 이름 규칙, 그리고 출력할 때 사용하는 형식 지정자까지 한 번에 익혀보세요.
1. 자료형 (Data Types)
자료형은 변수에 저장할 데이터의 종류와 크기를 결정합니다. C언어에서 자주 사용하는 기본 자료형을 알아봅시다.
1-1. 정수형 (Integer Types)
short
: 2바이트 (16비트), -32,768 ~ 32,767 범위int
: 4바이트 (32비트), -2,147,483,648 ~ 2,147,483,647 범위long
: 4바이트 (32비트), 보통 int와 동일 (환경에 따라 다름)long long
: 8바이트 (64비트), 아주 큰 정수 저장 가능
1-2. 부동소수점형 (Floating Point Types)
float
: 4바이트, 단정도 실수 (소수점 포함 숫자)double
: 8바이트, 배정도 실수 (float보다 더 정밀함)long double
: 8바이트 이상, 플랫폼에 따라 다르지만 double보다 더 큰 정밀도
1-3. 문자형 (Character Type)
char
: 1바이트, 하나의 문자 저장 (예: 'A', '가')
2. 정적 타입 vs 동적 타입
프로그래밍 언어는 변수의 자료형을 결정하는 시점에 따라 두 가지로 나눌 수 있습니다.
구분 | 정적 타입 (Static Typing) | 동적 타입 (Dynamic Typing) |
---|---|---|
자료형 결정 시점 | 컴파일 시 (프로그램 실행 전에 자료형이 고정됨) | 실행 시 (프로그램이 실행될 때 자료형이 결정됨) |
예시 언어 | C, C++, Java, Rust 등 | Python, JavaScript, Ruby 등 |
장점 | 오류를 미리 잡을 수 있어 안정적이고 빠름 | 유연성이 높아 빠른 프로토타입 작성 가능 |
단점 | 코드 작성 시 자료형을 명확히 써야 하므로 번거로울 수 있음 | 자료형 오류가 실행 중 발생할 수 있어 예기치 않은 버그가 생김 |
참고: C언어는 정적 타입 언어이므로 변수 선언 시 반드시 자료형을 명시해야 합니다.
3. 변수 이름 짓기 규칙
변수 이름은 코드를 읽기 쉽게 하는 중요한 요소입니다. C언어의 변수 이름 규칙은 다음과 같습니다.
- 알파벳(a~z, A~Z), 숫자(0~9), 밑줄(_) 문자 사용 가능
- 단, 변수 이름은 숫자로 시작할 수 없습니다. (예:
1 num
❌,num1
✅) - 대문자와 소문자를 구분합니다. (
num
과Num
은 다른 변수) - C언어 예약어(키워드)는 변수 이름으로 사용할 수 없습니다. (
int
,for
,return
등)
예시:
int age;
— 유효한 변수명float _weight;
— 밑줄로 시작 가능char name1;
— 숫자가 변수명 중간에 올 수 있음
4. 연산자 및 주소 연산자(&)
= 연산자는 오른쪽 값을 왼쪽 변수에 대입할 때 사용합니다.
int a = 10; // 변수 a에 10을 저장
& 연산자는 변수의 메모리 주소를 구할 때 사용합니다. 주로 포인터와 함께 씁니다.
int a = 10;
printf("a의 주소는 %p\n", &a);
5. 출력 형식 지정자 (Format Specifiers)
C언어에서 printf()
함수를 사용할 때 변수 타입에 따라 적절한 형식 지정자를 써야 합니다. 아래 표를 참고하세요.
형식 지정자 | 자료형 | 예시 |
---|---|---|
%d |
int |
printf("%d", 123); → 123 출력 |
%hi |
short |
printf("%hi", (short)10); |
%ld |
long |
printf("%ld", 100000L); |
%lld |
long long |
printf("%lld", 10000000000LL); |
%f |
float |
printf("%f", 3.14159f); |
%lf |
double |
printf("%lf", 3.1415926535); |
%c |
char |
printf("%c", 'A'); |
%s |
문자열 (char 배열) | printf("%s", "Hello"); |
%zu |
size_t (sizeof 함수 결과) |
printf("%zu", sizeof(int)); |
6. 필드 폭(Width)과 정밀도(Precision) 조절
출력할 때 숫자나 문자열의 자릿수를 조절하는 방법입니다. 보통 출력 결과를 보기 좋게 정렬할 때 씁니다.
%10d
: 폭 10칸 확보, 숫자는 오른쪽 정렬%-10d
: 폭 10칸 확보, 왼쪽 정렬%. 3f
: 소수점 이하 3자리까지만 출력 (반올림 포함)%10.3f
: 총 폭 10칸, 소수점 이하 3자리, 오른쪽 정렬%-10.3f
: 총 폭 10칸, 소수점 이하 3자리, 왼쪽 정렬
예시
printf("|%10d|\n", 123); // 출력: | 123|
printf("|%-10d|\n", 123); // 출력: |123 |
printf("|%.3f|\n", 3.14159); // 출력: |3.142|
printf("|%10.3f|\n", 3.14159); // 출력: | 3.142|
printf("|%-10.3f|\n", 3.14159); // 출력: |3.142 |
7. 마치며
지금까지 C언어 변수의 자료형, 변수 이름 규칙, 그리고 출력 형식 지정자에 대해 자세히 살펴보았습니다. 이 내용을 숙지하면 기본적인 변수 선언과 출력 작업은 문제없이 수행할 수 있습니다.
다음 글에서는 변수 선언 시 초기화, 상수(const), 그리고 포인터 기초까지 다뤄보겠습니다. 꾸준히 연습해서 탄탄한 C언어 실력을 쌓아가세요!
반응형
'공부 > C언어' 카테고리의 다른 글
[C언어] C언어 배열 완전 정복 – 1차원과 2차원 배열의 이해와 활용 (0) | 2025.06.14 |
---|---|
[C언어] C언어 반복문 완전 정복 – While문, Do-while문, For문과 제어문 (0) | 2025.06.14 |
[C언어] 조건문과 제어문 완벽 이해하기 - If, Switch, Goto (0) | 2025.06.14 |
[C언어] C언어 연산자 완전 정복 (1) | 2025.06.14 |
[C언어] C언어 기본 자료형과 상수, 메모리 크기 이해하기 (0) | 2025.06.14 |