안선생의 개발 블로그

C++ 상수(const) 본문

C++

C++ 상수(const)

안선생 2022. 6. 5. 23:01

상수

값이 변하지 않는 수 

앞에 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

 

 

 

 

'C++' 카테고리의 다른 글

C++ 문자  (0) 2022.06.07
C++ void  (0) 2022.06.06
C++ 포인터  (0) 2022.06.03
C++ 정적 변수 & 외부 변수  (0) 2022.06.01
C++ 분할구현  (0) 2022.06.01