C 언어 개열/C++

const 키워드와 메모리 영역

본클라쓰 2010. 8. 19. 22:15

const 키워드


 const 키워드로 선언하는 변수는 선언과 동시에 값을 할당해야 하며, 값을 할당한 후에는 읽기만 가능하고 값을 변경할 수는 변수가 된다.

 

const int n = 10;
const int * n;    // 데이터 상수화, 포인터를 통해 데이터를 변경하는 것을 막음
int * const n;     // 포인터 상수화, 포인터 값을 변경하는 것을 막음
const int * const n;        // 데이터 상수화 + 포인터 상수화


 C++ 프로그램은 컴파일시 main() 함수를 분석하여 프로그램에 필요한 메모리 공간을 알아낼 수 있다. 메모리 공간은 세 부분으로 분류되며 프로그램은 데이터의 성격에 따라 메모리의 해당 영역에 데이터를 저장하게 된다.

  1. 전역변수(Static 변수) = 데이터 영역
  2. Heap 영역 = 프로그래머가 할당하는 영역
  3. Stack 영역 = 지역변수, 매개변수

 전역변수의 영역인 데이터 영역은 프로그램이 시작할 때 메모리 공간이 할당되면 프로그램이 끝날 때까지 메모리에 남아있는 영역이다.