코딩 공부/C

#11.C_전역변수, 지역변수, 정적변수

코딩연습중 2022. 7. 18. 01:28

 전역변수는 블록 밖에 선언된 변수이다. 따라서 전역변수는 어느 함수에서든지 쉽게 사용할 수 있다. 그에 비해 지역변수는 블록 안에 선언된 변수로, 선언된 블록 안에서만 유효하다. 예를 들어, for문 안에 생성된 변수가 있다면 그 변수는 해당되는 for문 안에서만 사용이 가능하다. 

#include <stdio.h>

int n1 = 0; // 전역변수

int main(void){
	int n2 = 0; // 지역변수
    	for( int i = 0; i < 1; i++){ // i : 지역변수
    		int n1++;
        	int n2++;
        	printf("%d\n", n1); // 1출력
        	printf("%d\n", n2); // 1출력
        	}
    	return 0;
    }

 위의 지역변수는 변수가 선언된 블록이 끝나면 메모리에서 사라지게 된다. 정적변수는 블록 안에 선언하는 변수이면서, 프로그램이 종료될 때 메모리에서 사라지는 변수이다. 따라서 정적변수는 선언과 초기화가 딱 한 번만 가능하다. 정적변수는 다음과 같이 선언할 수 있다.

static 자료형 변수명