본문 바로가기

강의자료/C/C++

TIP. 포인터(pointer)와 상수(const)


포인터를 선언할 때 const를 사용하는 방법에 대해서 알아보겠습니다.

string name = "티이";
string nickname = "하얀뱀";

const string * myname = &name;      // 이 선언은 포인터가 가리키고 있는 값을
                                                     // 변경할 수 없도록 합니다.

*myname = "푸우";                          // 에러, 가리키는 값은 변경불가.
myname = &nickname;                    // 통과, 가리키는 주소는 변경가능.

string * const myname = &name;     // 이 선언은 포인터가 가리키고 있는 주소를
                                                    // 변경할 수 없도록 합니다. (참조자와 유사)

*myname = "푸우";                         // 통과, 가리키는 값은 변경가능.
myname = &nickname;                   // 에러, 가리키는 주소는 변경불가.

const string * const myname = &name;    // 이 선언은 포인터가 가리키고 있는
                                                            // 주소와 값 모두 변경할 수 없도록 합니다.

*myname = "푸우";                         // 에러, 가리키는 값은 변경불가.
myname = &nickname;                   // 에러, 가리키는 주소도 변경불가.

위와 같이 사용하시면 됩니다.