본문 바로가기

개발공부/C++

포인터 복습

/* 상수 포인터? */
#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