안선생의 개발 블로그
C++ 상수(const) 본문
상수
값이 변하지 않는 수
앞에 const를 붙여준다.
ex)
const int a = 10; // a라는 값은 10에서 바뀌지 않음
a = 11; //오류
상수와 포인터
const가 어디에 붙냐에 따라서 달라진다
앞에 붙었을때를 보자
포인터가 앞에 붙으면 포인터가 가르키는 원본의 값을 상수화하여 값을 수정할 수 없지만 다른 주소의 값을 넣을 수 있다.
반대로 뒤에 붙으면
포인터 변수 자체가 상수화 되서 다른 주소의 값을 받을 수 없게 된다. 반대로 원본의 값을 바꿀 수 있다.
이렇게 const를 어디에다 붙이냐에 따라 차이가난다.
두가지 동시에 상수화
주소값을 넣을 수 없고 원본의 값도 바꿀 수 없다.
즉 초기화 시 가리킨 대상만 가리키고, 가리키는 원본을 수정 할 수 없다.
주의
변수 a가 상수화가 되는게 아니다.
착각할 수 있는게 변수 a에 const를 붙인게 아니라 변수 a가 상수화가 되는게 아니다. 즉 p로 역참조해서 값을 수정하는것을 제한시킨것이지 변수 a를 상수한게 아님 아래 코드를 보면 a주소의 값에 300이 가능함 즉 원본이 상수화 된다고 해서 변수 a자체가 상수화 되는게 아님
출처 : https://www.youtube.com/c/AssortRockGameAcademy