2. 자료형(data type)
1) 자료형의 개념
- 자료형은 데이터를 저장할 때 사용되는 메모리 공간의 크기와 종류를 지정하는 단위이다.
- 변수 선언 시 해당 변수에 어떤 종류의 데이터를 저장할지를 지정한다.
- 데이터의 크기와 입출력 형태에 따라 적절한 자료형을 선택해야 한다.
- 자료형을 필요 이상으로 크게 지정하면 메모리를 낭비할 수 있다.
- 문자형(char)은 아스키코드와 매핑되어 실제로는 정수형에 속한다.
- 선언된 변수는 자료형에 따라 고정된 메모리 공간을 차지한다.
- 데이터를 효율적으로 처리하기 위해 용도에 맞는 자료형 선택이 중요하다.
- 예를 들어, 실수 데이터를 정수형에 저장하면 소수점 이하가 잘려서 손실된다.
2) 부호(Sign Bit)
- 대부분의 자료형은 맨 앞의 1bit를 부호 비트로 사용한다. 예를 들어, 실수 데이터를 정수형에 저장하면 소수점 이하가 잘려서 손실된다.
- 0이면 양수, 1이면 음수이다.
- signed 자료형은 부호를 포함하며, 일반적으로 생략 가능하다.
· unsigned: 양수만 표현할 수 있으며, 같은 바이트 수일 때 표현 가능한 최대 양수 값이 2배 더 크다.
3) 오버플로(Overflow)와 언더플로(Underflow)
3-1) 오버플로
· 자료형이 표현할 수 있는 최댓값을 초과한 경우 발생한다.
· 값은 다시 최솟값부터 시작하여 순환된다.
· 컴파일러는 에러나 경고를 표시하지 않으므로 주의가 필요하다.
· 해결 방법: 범위에 맞는 자료형 사용
💻 예제 코드 (오버플로 발생 예시)
#include <stdio.h>
int main() {
short s = 32767; // short의 최대값
s = s + 1; // 오버플로 발생
printf("오버플로 결과: %d\n", s); // -32768 출력
return 0;
}
3-2) 언더플로
· 자료형의 최솟값보다 작은 값을 저장하려 할 때 발생한다. 해결 방법: 범위에 맞는 자료형 사용
· 결과는 최댓값으로 순환되어 출력된다.
💻 예제 코드 (언더플로 발생 예시)
#include <stdio.h>
int main() {
short s = -32768; // short의 최솟값
s = s - 1; // 언더플로 발생
printf("언더플로 결과: %d\n", s); // 32767 출력
return 0;
}
✅ 마무리 정리
1️⃣ 자료형은 데이터를 저장하는 메모리의 크기와 형식을 정의한다.
2️⃣ 자료형 선택은 메모리 절약과 안정성에 영향을 준다.
3️⃣ 오버플로와 언더플로는 자료형 범위 초과 시 발생하며 주의가 필요하다.
'Language > C' 카테고리의 다른 글
| 📌 Chapter 04 - 변수와 자료형 - 상수 (0) | 2025.05.17 |
|---|---|
| 📌 Chapter 04 - 변수와 자료형 - 변수의 사용 (0) | 2025.05.17 |
| 📌 Chapter 04 - 변수와 자료형 - 변수의 기초 (0) | 2025.05.17 |
| 📌 Chapter 03 - 표준 입출력 함수 - 문자 코드 (0) | 2025.05.16 |
| 📌 Chapter 03 - 표준 입출력 함수 - 표준 입력 함수 (0) | 2025.05.16 |