지역변수에 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 |