변수와 자료형
C 언어에서 변수란 데이터를 저장하기 위한 메모리 공간에 붙인 이름입니다. 어떤 데이터를 저장할 것인지는 변수의 자료형(type)에 따라 결정되며, 자료형은 메모리 크기와 표현할 수 있는 값의 범위, 연산 방식 등에 영향을 미칩니다. 따라서 변수와 자료형은 C 언어 프로그래밍의 근간이 되는 개념이며, 이를 정확히 이해하고 활용하는 것이 중요합니다.
기본 자료형의 종류와 특징
C 언어에서는 다양한 기본 자료형(Primitive Data Type)을 제공합니다. 각 자료형은 특정한 용도로 최적화되어 있으며, 변수 선언 시 사용됩니다.
- int: 정수를 저장하는 자료형으로, 일반적으로 4바이트(32비트)를 사용합니다. 예를 들어
int age = 25;는 25라는 정수 값을 저장합니다. - float: 소수점을 포함하는 실수를 저장합니다. 4바이트 크기로 보통 6~7자리의 소수점 정밀도를 가집니다. 예:
float pi = 3.14f; - double:
float보다 더 정밀한 실수형으로, 8바이트 크기를 가지며 약 15자리의 정밀도를 제공합니다. 예:double rate = 3.1415926535; - char: 하나의 문자를 저장하는 데 사용되며 1바이트를 차지합니다. 작은 따옴표(
' ')로 묶어 사용합니다. 예:char initial = 'K'; - long:
int보다 더 큰 정수 값을 저장할 수 있는 타입입니다. 예:long population = 7000000000L;
각 자료형의 크기는 컴파일러나 시스템에 따라 다를 수 있지만, 보통 다음과 같습니다 (32비트 기준):
char: 1바이트int: 4바이트float: 4바이트double: 8바이트long: 4 또는 8바이트
상수(const)와 열거형(enum)
C 언어에서는 변수처럼 선언되지만 값이 변하지 않는 상수(Constant)를 정의할 수 있습니다. 또한, 여러 개의 관련 상수를 묶어서 사용하고자 할 때 열거형(Enum)을 사용할 수 있습니다.
1. 상수 (const)
const 키워드를 사용하면 값을 변경할 수 없는 변수를 만들 수 있습니다. 예를 들어:
const int MAX_SCORE = 100;
MAX_SCORE = 90; // 오류! const 변수는 값을 변경할 수 없음
이처럼 const를 사용하면 의도하지 않은 값의 변경을 막아 프로그램의 안정성을 높일 수 있습니다.
2. 열거형 (enum)
enum은 관련된 상수들을 하나의 그룹으로 묶어 관리할 수 있도록 해주는 기능입니다. 사용자가 정의한 이름 있는 정수 상수 집합을 만들 수 있습니다.
enum Color { RED, GREEN, BLUE };
enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY };
열거형의 각 항목은 자동으로 0부터 시작하여 1씩 증가한 값을 갖습니다. 예를 들어 MONDAY는 0, TUESDAY는 1이 됩니다. 다음과 같이 사용할 수 있습니다:
enum Weekday today;
today = WEDNESDAY;
if (today == WEDNESDAY) {
printf("오늘은 수요일입니다.\n");
}
sizeof 연산자
sizeof 연산자는 데이터 타입이나 변수의 메모리 크기를 바이트 단위로 반환합니다. 메모리 최적화나 포인터 연산 등을 할 때 유용하게 사용됩니다.
int a = 10;
float b = 3.14f;
char c = 'X';
printf("int의 크기: %zu 바이트\n", sizeof(a));
printf("float의 크기: %zu 바이트\n", sizeof(b));
printf("char의 크기: %zu 바이트\n", sizeof(c));
위 코드에서 % zu는 sizeof가 반환하는 size_t 타입을 출력할 때 사용됩니다. 또한 sizeof(int)처럼 데이터형 자체에 대해 직접 사용할 수도 있습니다.
결과적으로 sizeof는 프로그램의 안정성과 이식성 향상에 큰 도움을 줍니다. 특히 구조체나 배열을 다룰 때 그 진가를 발휘합니다.
마무리 요약
C 언어의 변수와 자료형은 프로그래밍의 핵심 요소입니다. 변수는 데이터를 저장하는 공간이고, 자료형은 저장되는 데이터의 종류와 크기를 정의합니다. const로 불변값을 선언하고, enum을 통해 관련 상수들을 그룹화하며, sizeof를 사용해 데이터 크기를 확인하는 방식은 C 언어의 핵심적인 패턴입니다.
이러한 기본 개념을 확실히 이해하고 나면 포인터, 배열, 구조체, 동적 메모리 할당과 같은 고급 개념을 배울 때도 훨씬 수월해집니다. 초보자일수록 작은 예제를 많이 실습하면서 변수와 자료형을 체득해 보세요!
'Programming' 카테고리의 다른 글
| C 제어문 (67) | 2025.08.10 |
|---|---|
| C 연산자 (74) | 2025.08.09 |
| C 기본 문법 (43) | 2025.08.07 |
| C 역사와 특징 (57) | 2025.08.06 |
| Swift 메모리 관리 (36) | 2025.08.05 |