c & c++/c언어 기초 개념
지역변수, 전역변수
일상코더
2022. 7. 18. 17:42
함수안에서 지역변수를 사용할때 변수가 증가 하지 않는다.
#include <stdio.h>
//변수의 종류
// 1. 지역변수 (스택 영역)
// 2. 전역변수 (데이터 영역)
// 3. 정적변수 (데이터 영역)
// 4. 외부변수 (데이터 영역)
//메모리 영역
// 1. stack 영역
// 2. data 영역
// 3. heap 영역
// 4. 읽기 전용(코드, ROM)
// 전역변수
int global = 0; //Data 영역
//Data 영역 틍직
//프로그램 시작 시 생성
// 프로그램 종료 시 해제
void Test()
{
int n = 0;
++n;
}
int main()
{
Test(); //n = 1
Test(); //n = 1
Test(); //n = 1
return 0;
}
전역변수를 사용해서 함수를 실행하면 증가
#include <stdio.h>
int global = 0; //전역변수 선언
void Test();
int main()
{
Test(); // global = 1
Test(); // global = 2
Test(); // global = 3
global = 0; //메인함수에서 0으로 초기화도 가능
return 0;
}
void Test()
{
++global;
}
지역변수와 달리 데이터 영역에 저장됨으로 프로그램 종료시에 종료됨