반응형
** const 키워드의 의미
변수를 상수화 한다.
- const int n = 10;
//n은 상수화가 되어서
//n = 12; 이런것을 넣어도 바뀌지 않는다.
- const int* n;
//데이터 상수화라 한다.
//n이라는 포인터 값 자체를 상수화 시킨것 x
//n이라는 포인터가 가리키는 것을 상수화.
//따라서 *n = 12; 이런식으로 바꿔도 안바뀜.
//포인터를 통하여 n이 가리키는 값을 변경시키는 것을 방지
//단 a = 20; 이런식으로 n이 가리키던 값을 포인터로 아닌 그냥 변경시키는 것은 가능하다.
- int* const n;
//포인터가 상수화 된 것
//포인터가 b를 가리키고 있는데 a를 가리킬려하면 안바뀜
//즉, n = &a라는것은 허용되지 않는다.
- const int* const n
//두번째 세번째에 있는 모든 항목을 다포함 시킨다.
** stack의 용도 및 특징
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | void function (int); int main(void) { int size; cin >> size; function(size); return 0; } void function(int i) { int array[i]; } | Crocus |
힙(Heap) 영역 : 프로그래머가 할당
(런 타임 크기를 결정)
(int array[i]같은것은 i값이 변할때마다 배열의 사이즈가 변하기에 힙 영역에 올려 크기를 결정시킨다.)
스택(Stack)영역 : 지역변수, 매개변수 등을 위한 공간
(컴파일 타임 크기 결정)
(앞에선 int size때문에 4byte만 요구된다. 그런것의 크기를 결정시킨다.)
데이터영역 : 전역변수, Static 변수를 위한 공간
(프로그램이 종료될 때 까지 계속 공간을 차지)
반응형
'Basic > C++' 카테고리의 다른 글
레퍼런스의 이해 (0) | 2015.10.03 |
---|---|
자료형 bool의 기본 설명 (0) | 2015.03.15 |
c++ 표준 입출력 (0) | 2015.03.07 |
c++ 지역변수, 전역변수의 추가 이해 (0) | 2015.03.07 |
c++ using 선언 (0) | 2015.03.07 |