const 키워드와 함께 정의한 변수의 값은 수정이 불가능하다.
즉, 프로그래밍시에 바뀌어서는 안될값이 있을 경우 활용할 수 있다.
또한 코드가 길어질 경우 실수로 변수의 값이 바뀌어 지는것을 방지할 수 있다.
const의 예는 다음과 같다.
const int num = 10;
-> "변수 num을 상수화"
그래서 num 값을 변경시에 컴파일 에러가 발생하는 것을 볼 수 있다.
그럼 포인터의 예를 살펴보자.
const int *ptr1 = #
-> "포인터 ptr1을 이용해서 num의 값을 변경 할 수 없음."
그래서 ptr1로 ptr1가 가리키고 있는 값을 변경할려고 할 때 컴파일 에러가 발생하는 것을 알 수 있다.
그러나 ptr1의 주소 값을 변경 할 수 있다.
* num에 다이렉트로 접근하면 값 변경이 가능하다는 것을 주의하자.
그러면 const를 * 뒤에 붙여보자.
int * const ptr1 = #
-> "포인터 ptr1가 상수화된다."
그럼 const를 앞뒤로 붙여보자.
const int * const ptr1 = #
-> "포인터 ptr1가 상수화가 되었으며, ptr1를 이용해서 num의 값을 변경할 수 없다."
'스터디 > C++' 카테고리의 다른 글
[ C++ ] new 와 delete를 이용한 메모리 동적할당, 메모리 누수(Memory Leak)에 대하여.. (0) | 2019.09.06 |
---|---|
[ C++ ] Call-by-value , Call-by-reference (0) | 2019.09.05 |
[ C++ ] 인라인(inline) 함수 (0) | 2019.09.05 |
[ C++ ] 선행처리기 / 전처리기 ( Preprocess ) (0) | 2019.09.05 |
[ C++ ] 매개변수의 디폴트 값 ( Default Value ) (0) | 2019.09.05 |