[목차]

 

1. 지역 변수, 전역 변수

2. 자동변수

3. 기억 클래스

4. 기출 및 기출 예상 문제 풀이

 

 

 


 

 

[지역 / 전역 변수]

 

지역 : 해당 함수나 블록 {} 내에서만 사용가능 (일시적)

전역 : 소스 전체에서 사용 가능 (지속적)

# 전역
int a=1;
int main(void) {
     printf("%d", a);
}
> 1 출력됨
-------------------------------------
# 지역
int a=1;
int main(void) {
   int a=2;
   printf("%d", a);
}
> 2 출력됨
 

 

 

 

[자동 변수]

 

- 함수나 코드의 범위를 한정하는 '블록 내에서 선언'되는 변수

- 자동(auto) 변수는 stack 영역을 일시적으로 사용

- 변수 초기화를 하지 않으면 예상치 못한 오류 발생함.

- auto 생략 가능

main() {
       int number;    # auto가 붙어있는데 생략 가능해서 안 써도 됨
       int sum;
       number=1;
       sum=sum+number;
       printf("%d", sum")
}  

>> sum 변수가 초기화 되지 않았다!
 

 

 

 

[기억 클래스]

 

: 변수가 저장되는 기억 영역을 결정하고, 기억 영역에 따라 사용하는 변수의 유효 범위를 결정하는 작업

(유효 범위 : 변수가 기억 장소를 점유하는 시간, 즉 변수의 라이프 타임(수명)을 의미함)

#takudaddy.c

#include <stdio.h>
#include "takudaddy.h"
int func();
static int SIZE;  # 외부 정적 변수
int main() {
    auto int a;  # 자동 변수
    int b = 3;   # 자동 변수
    register float pie = 3.14;   # 레지스터 변수
    static int date = 1225;   # 내부 정적 변수
    file = 'b';
}

------------------------------
#takudaddy.h
extern char file = 'a';   # 외부 변수
 

 


 

 

[기출문제]

 

728x90

+ Recent posts