반응형
포인터 변수에도 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도 상수화 됩니다.
반응형
'C++ > 포인터' 카테고리의 다른 글
[C++] 배열의 원소를 포인터로 접근하기 ar[i]=*(ar+i) (0) | 2022.08.12 |
---|---|
[C++] 포인터에서 * 연산자의 두 가지 사용법 (0) | 2022.08.12 |
[C++] 포인터에서 덧셈 뺄셈 연산 (0) | 2022.08.11 |
[C++] 변수의 주소는 몇 진수일까 (0) | 2022.08.11 |
[C++] 포인터에서 p와 *p의 차이 (0) | 2022.08.11 |
댓글