지역변수에 static 선언을 추가하면 전역변수의 성격을 지니는 변수가 된다. static변수의 특성은 다음과 같다. 

1. 선언된 함수 내에서만 접근이 가능하다.(지역변수 특성)

2. 한 번 초기화 되면 프로그램 종료 시까지 메모리 공간에 존재한다.(전역변수 특성)

#include <stdio.h>

void Func(void)
{
    static int num1 = 0;
    int num2 = 0;
    num1++, num2++;
    printf("static %d, local : %d\n", num1, num2);
}

int main(void)
{
    for(int i = 0; i<3; i++)
        Func();
    return 0;
}
/*
output:
static 1, local : 1
static 2, local : 1
static 3, local : 1
*/

static 변수는 전역변수와 동일한 시기에 할당되고 소멸된다. 변수의 접근 범위를 선언된 함수 내에서만 가능하도록 제한해주는 것이다. 

'Language > C, C++' 카테고리의 다른 글

[C] 재귀함수  (0) 2020.12.10
[C] register 변수  (0) 2020.12.10
[C] 전역변수  (0) 2020.12.09
[C] 지역변수  (0) 2020.12.09
[C] 함수(function)  (0) 2020.12.08

+ Recent posts