변수와는 달리 상수인 const로 지정을 하면 지정된 값을 절대 바꿀수 없다.
값의 변경이 이뤄나선 안되는 경우 주로 사용한다.
const int xc = 23;
int yc = 32;
xc = yc; //변경할 수 없는 수에 대입할 수 없다.
이와 같이 넣으려고하면
오류가 난다.
포인터에서는 두가지의 경수가 있다.
int yc = 32;
int zc = 45;
const int* xcp = &yc;
int* const ycp = &yc;
xcp = &zc;
*xcp = zc; //성립 x
ycp = &zc; //성립 x
*ycp = zc;
위의 경우는 c는 정수형 포인터이며, 앞에 const가 붙음으로써, c는 상수만을 가리키는 포인터라는 의미가 된다. 따라서, c가 가리키는 대상은 변경이 가능하지만, 가리키는 값은 변경 할 수 없다.
반대로, 자료형의 뒤에 붙는 경우는, const가 자료형의 뒤에 붙음으로써 c는 정수형 변수를 가리키는 상수형 포인터가 된다. 따라서, 포인터가 가리키는 위치는 변경 할 수 없고, 가리키는 값은 변경이 가능하다.
출처: https://ra2kstar.tistory.com/143 [초보개발자 이야기.]
'C++ > Basic' 카테고리의 다른 글
구조체(struct) (0) | 2021.02.22 |
---|---|
포인터 (0) | 2021.02.22 |
char, string (0) | 2021.02.22 |
vector, pair, tuple을 vector에 넣기 (0) | 2021.01.08 |
공용체(union), 열거체(enum) (0) | 2020.10.16 |