개인노트
[C언어] Static 변수 본문
[ 지역변수에 static 선언을 할 경우 ]
원래 지역변수의 특성은 다음과 같다.
1. 선언된 함수 내에서만 접근이 가능하다.
2. 함수 내에 선언된 지역변수는 해당 함수가 반환하면 소멸된다.
하지만 지역변수에 static이 붙게 되면 특성은 다음과 같아진다.
1. 선언된 함수 내에서만 접근이 가능하다.
2. 딱 1회만 초기화 되고 프로그램 종료 시까지 메모리 에 남는다.
static이 붙으면 위와 같이 지역변수와 전역변수의 특성을 둘다 보유하게 된다.
static변수는 접근 범위를 제한하고 프로그램이 종료될 때 까지 메모리공간에 남아있게 해준다.
Source.c |
#include <stdio.h> #include "stdlib.h" void simple(void) { static int num1 = 0; int num2 = 0; num1++, num2++; printf(" static : %d, local : %d \n", num1, num2); } int main(void) { int i; for (i = 0; i < 3; i++) { simple(); } system("pause"); } |
'C > 문법' 카테고리의 다른 글
[C언어] 배열 선언, 배열 초기화 (0) | 2017.06.23 |
---|---|
[C언어] 재귀함수 (0) | 2017.05.23 |
[C언어] 지역변수, 전역변수 (0) | 2017.05.23 |
[C언어] goto 문 (0) | 2017.05.10 |
[C언어] Switch 문 ② (0) | 2017.05.10 |
Comments