🗺️ 수업 목표
- 변수의 정의와 선언 방법을 배운다.
- signed / unsigned 키워드의 차이를 이해한다.
- 오버플로우(Overflow) 현상의 원인과 결과를 파악한다.
📚 1. 변수(Variable) vs 상수(Constant)
- 변수: 값이 변할 수 있는 저장 공간.
- 상수: 한 번 정해지면 변하지 않는 값.
[선언 형식]
C
자료형 변수명 = 값;
💡 Ex010901) 변수 선언 및 초기화
C
#include <stdio.h>
int main(void) {
int Num = 2147483647; // 선언과 동시에 초기화
double PI; // 선언만 진행
printf("Num = %d\n", Num);
PI = 3.141592; // 나중에 값을 대입
printf("PI = %lf\n", PI);
return 0;
}
📚 2. 키워드: unsigned vs signed
데이터를 저장할 때 **부호(음수)**를 고려할지 결정합니다.
- signed: 양수와 음수를 모두 표현 (기본적으로 생략되어 있음).
- unsigned: 음수를 포기하는 대신, 양수의 표현 범위를 2배로 늘림. (서식 지정자: %u)
📚 3. 오버플로우(Overflow)
자료형이 담을 수 있는 **그릇의 크기(비트 수)**를 넘어섰을 때 발생하는 현상입니다. 시계 바늘이 12시를 지나면 다시 1시로 돌아오는 것과 비슷하게 동작합니다.
💡 Ex010902) 오버플로우 테스트
특히 unsigned 변수에 -1을 대입하면 해당 자료형이 가질 수 있는 최댓값이 출력되는 점을 주의해서 보세요.
C
#include <stdio.h>
int main(void) {
// 8bit(1byte) 범위 테스트
unsigned char UnsignedCharNumWithOverflow = -1;
// 결과: 255 (1111 1111)
// 16bit(2byte) 범위 테스트
unsigned short UnsignedShortNumWithOverflow = -1;
// 결과: 65535
printf("UnsignedCharNumWithOverflow: %hhu\n", UnsignedCharNumWithOverflow);
printf("UnsignedShortNumWithOverflow: %hu\n", UnsignedShortNumWithOverflow);
return 0;
}
🔄 오버플로우 도식화
컴퓨터 내부에서 숫자는 원형 순환 구조를 가집니다. 최댓값을 넘으면 다시 최솟값으로 돌아갑니다.
'코딩' 카테고리의 다른 글
| 챕터 1-11 : 입력 기초 (0) | 2026.02.24 |
|---|---|
| 챕터 1-10 : ASCII (0) | 2026.02.24 |
| 챕터 1-8 : 자료형(Data Type) (0) | 2026.02.24 |
| 챕터 1-7 : 리터럴 (0) | 2026.02.24 |
| 개선된 계산기 프로그램 작성해보기 (0) | 2026.02.24 |