/* 상수 포인터? */
#include <stdio.h>
int main() {
int a;
int b;
const int* pa = &a;
//const int *pa도 같은 선언이다.
*pa = 3; // 올바르지 않은 문장
pa = &b; // 올바른 문장
return 0;
}
참고로 int* p랑 int *p랑 같다. 그리고 상수지시포인터(pointer to constant)라고 한다.
상수를 가리키는 포인터라는 뜻으로 포인터 자체는 상수가 아니다.
pa를 통해 다른 주소값을 가지는 것은 가능하지만 *pa를 통해 값을 변경하는 것은 불가하다.
/* 상수 포인터? */
#include <stdio.h>
int main() {
int a;
int b;
int* const pa = &a;
//int *const pa도 같은 선언이다.
*pa = 3; // 올바른 문장
pa = &b; // 올바르지 않은 문장
return 0;
}
상수포인터(constant pointer)라고 하며 포인터가 상수라는 의미로, p가 가리키는 주소값을 바꿀 수 없다.
그리고 좌우 전부 붙으면 상수지시상수포인터인데 이 경우는 값도 주소값도 바꿀 수가 없다.
'개발공부 > C++' 카테고리의 다른 글
C++의 기초적인 사용법 (0) | 2019.10.21 |
---|---|
assignment와 initialization (0) | 2019.10.21 |
상수에 대한 참조자 (0) | 2019.10.10 |
래퍼런스의 도입 (0) | 2019.10.10 |
std::cin (0) | 2019.10.10 |