전역변수, 지역변수, 정적변수

전역변수, 지역변수, 정적변수

전역변수 Global Variable

  1. 전역변수는 함수나 클래스 밖에서 선언된 변수.

  2. 전체 프로그램에서 접근 할 수 있다.

  3. 데이터 영역에 저장된다.

  4. 프로그램이 시작할때 메모리가 할당되고, 종료되야 해제된다.

  5. 전역변수는 기본적으로 0으로 초기화된다.

int globalVar = 10; // 전역 변수

void foo() {
    // globalVar를 사용할 수 있음
}

지역변수 Local Variable

  1. 함수나 블록 내에서 선언된 변수.

  2. 변수가 선언된 블록({})내에서만 접근할 수 있다.

  3. 스택 영역에 저장된다.

  4. 변수가 선언된 블록이 실행될 때 메모리가 할당되고, 블록을 벗어나면 해제된다.

  5. 자동으로 초기화 되지 않아 초기화 해야 한다.

정적변수 Static Variable

  1. 함수나 클래스 내부에서 static 키워드로 선언된 변수.

  2. 함수 내 정적 변수는 해당 함수 내에서만 접근 가능, 클래스 내 정적 변수는 클래스 외부에서 :: 연산자로 접근 가능.

  3. 데이터 영역에 저장된다.

  4. 프로그램 실행 동안 계속 유지된다.

프로그램이 운영체제에 할당 받는 메모리 구조

실습 예제

ch06ex1_변수와메모리.cpp

메모리 구조

Last updated