C 기본 문법 – 기본 데이터 타입 – 0 – 정수형

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)**을 배워볼게요.
숫자 중에서도 소수점 있는 값을 다룰 수 있게 되는 흥미로운 시간이 기다리고 있답니다!

궁금한 점이 있다면 언제든지 댓글로 남겨주시고,
그럼 또 뵐게요! 감사합니다 😊

답글 남기기