본문 바로가기

Language/C++

[C++] Pointer and Const -컴도리돌이

728x90

 


Declaring a Pointer as Const -1

 

int num = 20;
const int* ptr = #

 

포인터 ptr은 num의 주소 값을 가리킨다. 그 앞에 const를 붙이면 포인터를 통해서 변수의 값을 수정할 수 없다.

 

<example>

 

*ptr = 30; // compile error!

 

하지만 num 변수 자체의 값을 수정할 때는 에러가 나지 않는다.

 

num = 30; // OK

Declaring a Pointer as Const -2

 

int num1 = 20;
int num2 = 30;
int* const ptr = &num1;

 

요번에는 포인터 앞에 ptr을 const를 붙였다.

 

-> ptr의 값은 수정할 수 없다.

-> 다른 변수를 가리키도록 ptr 값을 수정할 수 없다.

 

ptr = &num2; // compile error!

 

그러나 포인터를 통해서 변수의 값을 수정할 수 있다.

 

*ptr = 30; //OK