강께르의 개발일지
[C++] 포인터 변수의 const 사용에 대해 본문
1. const를 사용하는 포인터 변수
- 보통 const를 사용해 변수를 상수화하면 상수화된 변수의 값은 변경하지 못한다는 개념이다.
- 하지만 포인터 변수의 const 사용법은 두 가지이다. 그 방법은 다음과 같다.
포인터 변수가 가리키는 값을 상수화
포인터 변수가 저장하고 있는 주소값을 상수화
2. 포인터의 const 사용에 대해
2-1. 포인터 변수가 가리키는 값을 상수화
- 포인터 변수에 저장된 주소값을 역참조해서 그 메모리 공간에 있는 값을 변경하지 못하게 하고, 오직 그 주소값의 변수를 직접 접근하여 변경이 가능하다.
- 이것이 포인터가 가리키는 값이 상수화가 된 것이다.
- 사용 방법은 포인터 변수의 자료형 앞에 const를 넣는다.
int a = 10;
const int* ptr = &a; // 이 포인터 변수로 접근하여
// 그 주소값의 메모리 공간의 값을 변경할 수 없음.
*ptr = 20; // 불가능하다.
a = 30; // 가능하다
2-2. 포인터 변수가 저장하고 있는 주소값을 상수화
- 포인터 변수에 다른 메모리 주소를 저장하지 못하도록 저장하고 있는 주소값을 변경하지 못하도록 한다.
- 포인터 변수를 통해서 메모리 공간의 값을 변경하는 것은 가능하다.
- 사용방법은 포인터 변수의 자료형과 변수 이름 사이에 const를 넣는다.
int a = 10;
int b = 20;
// 주소값을 상수화하여 다른 주소값으로 변경하지 못하도록
// 주소값의 변경을 막는다.
int* const ptr = &a;
ptr = &b; // 불가능하다
*ptr = 30; // 주소값이 아닌 역참조에 의한 값 변경이 가능
출처 : https://jink1982.tistory.com/115
[C] 포인터와 상수(const)
포인터와 const const는 변수를 상수화 시키는 키워드다. 변수를 상수화 시킨다는 말은 변수의 값이 변경 되지 않게 한다는 뜻이다. 한번 초기값이 설정된 변수 값은 변수 사용 범위 내에서 계속
jink1982.tistory.com
https://itdexter.tistory.com/446
C언어 - 포인터 변수의 상수화
<포인터 변수의 상수화> 포인터 변수를 상수화 시키는 것은 무엇일까? 포인터 변수란, 변수에 주소를 저장하는 것을 의미한다. 그렇다면 이것을 상수화시킨다...? 이것의 의미는 두 가지가 있다.
itdexter.tistory.com
'프로그래밍 > C++' 카테고리의 다른 글
[C++] delete와 delete[] (0) | 2021.06.13 |
---|---|
[C++] 범위 기반 for문 (0) | 2021.06.13 |
[C++] 객체 지향 프로그래밍과 특징 정리 (0) | 2021.06.10 |
[C++] enum과 enum class (0) | 2021.06.10 |
[C++] void 포인터와 함수형 포인터 (0) | 2021.06.10 |