const int*는 상수 포인터, int* const는 포인터 상수를 나타낸다.
const는 C++에서 변경 불가 keyword이다.
const가 붙는 위치에 따라 변수 선언이 다른 의미를 가진다.
const가 * 앞에 붙으면 상수 포인터, * 뒤에 붙으면 포인터 상수가 된다.
int* n; // int형 포인터 변수
const int n = 10; // n 이라는 value 값 자체를 변경 불가
const int* n; // int형 상수에 대한 포인터, 데이터 상수화, int const* 와 동일
*n = 20; // n의 주소값이 가리키는 value 값 변경 불가
int* const n; // int형에 대한 포인터 상수, 포인터의 상수화, n의 주소값 변경 불가
const int* const n; // n의 value와 주소값 모두 변경 불가, int const* const와 동일
상수 포인터 ( const int* //int const* )는 포인터 값은 변경가능하지만 포인터가 가르키는 주소에 있는 값은 변경이 불가능하다. 문자열 자체가 프로그램의 데이터 세그먼트에 있고 변경해서는 안되는 경우에 중요하다
'karma( 업 ) > C_C++' 카테고리의 다른 글
void 선언 (0) | 2024.04.11 |
---|---|
The Clockwise/Spiral Rule (570) | 2023.10.25 |
C/C++ 프로그래밍을 잘하려면 (0) | 2020.02.04 |
*& reference to pointer (0) | 2018.12.03 |
09. std::tuple( C++11로 가자 ) (0) | 2018.11.01 |