본문 바로가기
C++/포인터

[C++] 포인터 변수와 const

by bigpicture 2022. 8. 17.
반응형

포인터 변수에도 const 선언을 하여 상수로 만들 수 있습니다. 이번 글의 목적은 아래 네가지 선언을 구분하는 것입니다. 

1) const int a=3;

2) 
int a=3;
const int* pa=&a

3) 
int a=3;
int* const pa=&a

4) 
int a=3;
const int* const pa=&a


1번은 a라는 변수를 변경이 불가능하도록 만든 것입니다. a=5 등 a에 다른 값을 대입할 경우 에러가 발생합니다. 

2번은 int* pa 앞에 const가 붙어 있습니다. pa를 상수화 한 것은 아니고 *pa 를 상수화 한 것입니다. 따라서 *pa=5 등 *pa 에 다른 값을 대입할 경우 에러가 발생합니다.

3번은 pa 앞에 const가 붙어 있습니다. pa를 상수화한 것이고, pa에는 주소값이 저장되므로 pa의 주소값을 바꿀 수 없습니다. 

4번은 *pa 도 상수화 되고, pa도 상수화 됩니다. 

반응형

댓글