1. Const? |
: Const는 변수를 상수화 하기 위해 사용하는데, 쓰이는 위치에 따라서 용도가 조금 달라진다.
- 첫번째, const int* n
: 위와 같이 const가 자료형 뒤에 붙은 경우를 데이터 상수화 라고 하고 n이라는 포인터가 가리키는 대상을 상수화 하겠다는 의미가 된다.
위의 예제를 한번 보자 . n이라는 포인터가 가리키는 곳 B로 지정하고, B의 값은 변경하면 무리 없이 변경되는 것을 볼 수 있지만, *n =30; 이 부분에서는 직접 실행해 보면, 에러가 나는것을 알 수 있다. n이 지닌 값은 변경이 안된다는 것이다. 즉, 실제로 메모리 공간 자체가 상수화 된것이 아니고, n이라는 포인터를 이용해서 데이터 변경을 막겠다는 의미가 된다. (하지만 변수 b를 이용해 변경은 가능하다)
- 두번째, int* const n
: 위와 같이 cosnt가 붙은 경우를 포인터 상수화 라고 한다. 예제를 통해 한번 알아 보자.
위에서 같이 선언한 n이라는 포인터가 b를 가르키고 있을 시에, 이런 상황에 변수 a를 또 가리키도록 하려는 것을 허용 하지 않겠다는 의미가 된다.
- 세번째, const int* const n; : 데이터, 포인터 둘다 상수화 하겠다는 의미이다.
'Programming > C / C++' 카테고리의 다른 글
[C/C++] Call by Value & Call By Reference (값에 의한 호출, 참조에 의한 호출) (0) | 2010.09.08 |
---|---|
[C++의 특징 - 3] 변수(Variable)와 레퍼런스(Reference) (0) | 2010.09.08 |
[C/C++] 데이터, 스택(Stack), 힙(Heap) 영역 (0) | 2010.09.08 |
[C++의 특징 - 2] 인라인 함수(Inline Function) 와 네임스페이스(Namespace) (0) | 2010.09.08 |
[C++의 특징 - 1] 함수 오버로딩과 디폴트 매개변수 (Funtion Overloading & Default Parameter) (0) | 2010.09.08 |