C 기본 문법 – 기본 데이터 타입 – 0편: 정수형 완벽 정복!
안녕하세요, 열정 가득한 C 언어 학습자 여러분 😊
이번 시간부터는 C 언어의 기초 중 기초! 데이터 타입에 대해 하나씩 알아보려 해요.
그 중에서도 오늘은 **정수형(Integer Type)**을 중점적으로 파헤쳐볼게요!
프로그래밍에서 정수형은 마치 숫자를 담는 그릇과도 같아요.
그릇의 크기와 모양에 따라 담을 수 있는 숫자의 종류가 달라지죠!
그럼 지금부터 정수형의 세계로 함께 떠나볼까요? 🚀
데이터 타입이란?
데이터 타입이란 “값의 종류와 형식을 정의하는 규칙”이에요.
우리가 컴퓨터에게 “숫자야!”, “글자야!”, “소수점 있는 수야!”라고 알려주는 방법이 바로 데이터 타입을 지정하는 것이죠.
정수형이란?
정수형은 소수점이 없는 숫자를 저장할 때 사용하는 타입이에요.
예:10
,-25
,0
,2025
등
정수형에는 다양한 종류가 있고, 각각 저장 가능한 값의 범위와 메모리 크기가 달라요.
C 언어의 주요 정수형 종류
자료형 | 크기(바이트) | 표현 가능한 값의 범위 (대략) | 설명 |
---|---|---|---|
short |
2 byte | -32,768 ~ 32,767 | 작은 수용량 정수 |
int |
4 byte | -2,147,483,648 ~ 2,147,483,647 | 기본 정수형 |
long |
4 or 8 byte | 플랫폼에 따라 다름 | 더 큰 범위 정수 |
long long |
8 byte | 약 ±9경 (±9,223,372,036,854,775,807) | 아주 큰 정수용 |
💡 참고: 위 범위는 signed(음수+양수) 기준이에요.
부호가 있는 정수 vs 부호가 없는 정수
C 언어에서는 양수/음수를 구분하느냐에 따라 또 나뉩니다.
자료형 | 부호 유무 | 설명 |
---|---|---|
int |
부호 있음 (기본) | 음수와 양수 모두 저장 가능 |
unsigned int |
부호 없음 | 0 이상의 값만 저장 가능, 더 큰 양수 표현 가능 |
예시
int a = -100;
unsigned int b = 100; // 양수만 허용
📌 비유하자면,
부호 있는 정수는 “양쪽으로 움직일 수 있는 자전거”,
부호 없는 정수는 “앞으로만 달릴 수 있는 자전거”예요!
앞으로만 가니 더 멀리 갈 수 있죠. 😊
코드 예제로 알아보는 정수형
#include <stdio.h>
int main() {
short s = 32767;
int i = 100000;
long l = 1000000000;
long long ll = 9223372036854775807;
unsigned int ui = 4294967295;
printf("short: %d
", s);
printf("int: %d
", i);
printf("long: %ld
", l);
printf("long long: %lld
", ll);
printf("unsigned int: %u
", ui);
return 0;
}
출력 결과:
short: 32767
int: 100000
long: 1000000000
long long: 9223372036854775807
unsigned int: 4294967295
🧠
printf
사용 시 주의!
%d
: int%ld
: long%lld
: long long%u
: unsigned int
정수형 사용 시 자주 하는 실수
실수 | 예시 | 해결 방법 |
---|---|---|
정수 범위 초과 | int x = 3000000000; |
unsigned int 또는 long long 사용 |
타입 혼동 | long l = 10; printf("%d", l); |
%ld 로 출력해야 함 |
부호 실수 | unsigned int x = -1; |
부호 없는 정수에 음수 대입 금지 |
타입 일치 오류 | 연산 시 타입 다르면 예상치 못한 결과 | 명시적 형변환 사용 ((int) , (long) 등) |
sizeof 연산자: 정수형 크기 확인하기
#include <stdio.h>
int main() {
printf("int 크기: %lu 바이트
", sizeof(int));
printf("long 크기: %lu 바이트
", sizeof(long));
printf("long long 크기: %lu 바이트
", sizeof(long long));
return 0;
}
이 코드를 통해 운영체제와 시스템에 따라 타입 크기가 어떻게 달라지는지 알 수 있어요!
언제 어떤 정수형을 쓰면 좋을까요?
상황 | 추천 정수형 |
---|---|
기본 정수값 저장 | int |
큰 수가 필요함 | long long |
메모리 절약 중요 | short |
양수만 필요할 때 | unsigned int |
매우 큰 범위의 ID, 시간 값 등 | unsigned long long |
✅ 요점 정리
타입 | 크기 | 표현 범위 | 용도 |
---|---|---|---|
short |
2B | ±32,768 | 메모리 아낄 때 |
int |
4B | ±21억 | 기본 정수용 |
long |
4~8B | ±10억 이상 | 큰 수 |
long long |
8B | ±9경 | 매우 큰 정수 |
unsigned int |
4B | 0 ~ 42억 | 양수만 저장할 때 |
⚠️ 정수형 사용할 때 주의할 점
주의사항 | 설명 |
---|---|
정수형 범위 초과는 오버플로우 발생 | 의도치 않은 결과가 나올 수 있어요! |
출력 시 서식 지정자 주의 | %d , %ld , %lld 를 올바르게 사용해야 해요 |
부호형과 무부호형 혼용 자제 | 연산 오류나 비교 오류 발생 가능 |
sizeof 결과는 시스템에 따라 다름 |
항상 고정 크기라고 가정하지 마세요! |
마무리하며 💬
정수형은 모든 프로그램의 뼈대를 이루는 아주 중요한 개념이에요.
숫자를 저장하고 다루는 가장 기초적인 방식이기 때문에,
지금 정확히 이해해두면 앞으로의 조건문, 반복문, 배열, 함수 인자까지
모든 게 훨씬 쉽게 느껴지실 거예요!
다음 시간엔 **실수형(Floating Point Type)**을 배워볼게요.
숫자 중에서도 소수점 있는 값을 다룰 수 있게 되는 흥미로운 시간이 기다리고 있답니다!
궁금한 점이 있다면 언제든지 댓글로 남겨주시고,
그럼 또 뵐게요! 감사합니다 😊