프로그램 및 소스
const int *p와 int* const p의 차이점
jihun202
2014. 3. 12. 20:41
반응형
int nData = 10; const int *p = &nData; int* const p = &nData;
우선, const는 const 키워드의 오른쪽에 있는 것을 상수화 한다.
따라서, 두번째 줄의 const int *p 의 경우에는, int 를 상수화 하는 것이므로 즉 포인터가 가리키는 대상 메모리(nData)를 상수화 시킨 것이다.
따라서 p 를 이용해서 대상 메모리 nData에 대입 연산을 수행할 수 없다.
이 경우가 주로 쓰이는데, 대상 메모리의 값 변경을 원하지 않을 경우 사용한다. 가급적 보호가 필요한 메모리에 대해서는 const를 붙여주는 것이 좋다.
세번째 줄의 int* const p 의 경우에는, p 를 상수화 하는 것이므로 포인터 변수 자체를 상수화 하는 것이다.
따라서 선언 후 포인터 p 자체에 대입 연산을 수행할 수 없다 (포인터가 가리키는 메모리를 바꾼다거나)
[출처] const int *p와 int* const p의 차이점|작성자 경민ㅇ1
반응형