Search
Duplicate

변수의 사용 범위

Created
2021/11/18 08:53
Tags
선언에 따른 구분
지역 변수 local variable
함수 안에 선언
전역 변수 global variable
함수 밖에 선언
정적 변수 static variable
static 키워드와 함께 함수 안과 밖에 선언
static 데이터형 변수명;
사용 범위 구분
지역 변수
함수 안에서만 사용 가능
전역 변수
프로젝트 전체에서 사용 가능
전역변수가 선언된 파일 안에서 모두 사용할 수 있다.
정적 변수
선언된 함수 안과 해당 파일에서만 사용 가능
함수 안에서는 지역변수의 성향이 있지만 종료는 프로그램이 종료될때 같이 종료 된다.
사용 범위에 따른 예 : 지역변수
함수 안에서만 사용
#include <stdio.h> void func(int var1){ int var2 = 10; printf("%p %p\n", &var1, &var2); } int main(void){ int var1 = 30; func(var1); printf("%p\n", &var1); return 0; }
C
복사
사용 범위에 따른 분류 예 : 전역 변수
함수 밖에 선언된 변수로 주로 상단에 위치
#include <stdio.h> #include <stdlib.h> int g_var; // 기본적으로 0으로 초기화가 된다 void func(){ g_var++; } int main(void){ printf("%d\n", g_var); func(); printf("%d\n", g_var); return 0; }
C
복사
사용 범위에 따른 분류 예 : 정적 변수(1)
함수 밖에 선언되며 전역변수와 동일한 기능
단, 선언된 파일 안에서만 전역적으로 사용
// 함수 밖에 선언된 경우 #include <stdio.h> #include <stdlib.h> static int g_var; // 0으로 초기값이 설정이된다. void func(){ g_var++; } int main(void){ printf("%d ", g_var); func(); printf("%d ",g_var); return 0; }
C
복사
사용 범위에 따른 분류 예 : 정적 변수(2)
함수 안에서 사용될 때는 프로그램이 종결될 때까지 값 유지
// 함수 안에서 사용될 경우 #include <stdio.h> #include <stdlib.h> void func(){ static int var; printf("%d\n", var++); } int main(void){ func(); func(); func(); func(); return 0; }
C
복사

사용 범위에 따른 변수

Search
생성과 소멸 시기
구분
생성 시기
소멸 시기
프로그램 실행
프로그램 종료
함수 호출 또는 프로그램 실행
프로그램 종료
COUNT3
초기값
지역 변수 : 이전 메모리에 남아 있던 임의의 값으로 초기화
전역 변수 : 0
정적 변수 : 0
초기값 확인
#include <stdio.h> #include <stdlib.h> int g_globalvar; static int g_staticglobalvar; int main(void){ static int staticvar; int var; printf("%d %d %d %d\n", g_globalvar, g_staticglobalvar, staticvar, var); return 0; }
C
복사