달력

112024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

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
Posted by 생짜
|