코딩

챕터 1-9 : 변수

story98138 2026. 2. 24. 18:04

🗺️ 수업 목표

  • 변수의 정의와 선언 방법을 배운다.
  • 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