본문 바로가기
컴퓨터/C++

접근 지정자 const

by Luyin 2014. 4. 28.

접근 지정자 const는 정리하면 다음과 같습니다.


1. const는 자신의 오른쪽 것에 적용된다.

2. 오른쪽에 적용대상이 없으면 왼쪽에 적요안다. 여기서 말하는 적용대상이란 * 또는 형 (type)이다.


const char* str;

const char* str; 이라고 선언하면 str=str+1; 등 str은 변경할 수 있으나 *str은 변경할 수 없음. 즉, const 포인터가 아니라 const char 임.


char* const str;

char* const str="abcd"; 하믄 위와 반대로 됨.

const char* const str = "abcd"; 하면 str, *str 둘 모두 const가 되어 변경할 수 없음.

이들을 쉽게 구분하려면 아래와 같이 합니다.


함수의 반환형과 배개변수에서도 위의 내용이 동일하게 적용됩니다.


예)

가끔 const char* 을 const 포인터이자 char인 것으로 오해하는 경우가 있습니다. const포인터가 아닙니다.

int StrLen(const char* str)

{

const char* p = str;

while(*p) p++;    //이 곳의 p++을 못하는 것으로 오해하지 말아야.

return (p-str);

}