1. const ?
- 해당 값을 변경하지 않겠다는 의미
2. 변수에서 사용
- const char *
> 상수형 문자에 대한 포인터
> 포인터가 가리키는 변수의 값을 변경할 수 없음
e.g)
char ch1 = 'a';
char ch2 = 'b';
const char *pch;
pch = &ch1;
*pch = 'c' // Error - Read Only Location
- char const *
> 문자에 대한 상수형 포인터
> 포인터 값을 변경할 수 없음
e.g)
char ch1 = 'a';
char ch2 = 'b';
char *const pch = &ch1;
*pch = 'c';
pch = &ch2 // Error - Read Only variable
- const char cosnt *
> 변수의 값과 포인터의 값을 변경할 수 없음
e.g)
char ch1 = 'a';
char ch2 = 'b';
*pch = 'c'; // Error - Read Only Location
pch = &ch2; // Error - Read Only Variable
3. 함수
1) 매개변수의 const
- 'call by reference'로 복사 오버헤드 없이 참조하는 변수를 읽기 전용으로 사용.
2) 함수명 뒤의 const
- 해당 함수에서 멤버 변수를 'Read Only'로 사용. (값을 변경할 수 없음)
3) 함수 반환 타입의 const
- 함수의 반환 값을 'Read Only'로 사용.
- 함수가 반환하는 값이 &&(r-value 참조)로 사용하면 수정할 여지가 있음
이러한 가능성을 제거하고 해당함수가 반환하는 값은 대입 연산자를 통해 복사해서 사용.
'Language > C++' 카테고리의 다른 글
[C++] float 와 double (0) | 2020.12.13 |
---|---|
[C++] 배열과 연결 리스트의 차이 (0) | 2020.12.13 |
[C++] Stack과 Heap 의 차이 (0) | 2020.12.13 |
[C++] 동적 할당 (malloc, calloc, realloc, new) (0) | 2020.12.13 |
[C++] C / C++ 차이 (2) | 2020.12.13 |