본문 바로가기
{Programing}/C.C++

c/c++ const 예약어

by 탱타로케이 2020. 1. 6.

const 예약어는 변수, 포인터, 멤버함수, 객체를 상수화 시키는 예약어 이다.

 

상수란 변경할수 없는 고유한 값을 뜻하며.

const 상수와 #define 상수가 있다.

 

변수, 객체는 각각 자료형의 앞에 const 예약어를 붙인다.

멤버 함수의 경우 함수명 뒤에 붙인다.

 

이렇게 되면 전부 상수화 되어 변수는 값을, 멤버함수는 함수 내부에서 멤버변수를 변경할수 없게, 객체는 멤버 변수를 다른 데이터로 변경할수 없게 한다.

 

 

포인터의 경우는 두가지로 나뉘는데

 

//상수를 가리키는 포인터.
const int * cp;


//포인터 변수에 저장된 주소가 상수화 되는 포인터.
int * cosnt pc;

//완전 상수. 포인터든 값이든 절대 변경불가.
const int * const cpc;

 

첫번째 경우는 이미 정의된 상수를 가리키는 포인터 되시겠다. 즉, 포인터가 가리키는 주소는 변경 가능하나 주소가 가진 변수의 값은 변경 불가능하다. 포인터로 쓰는 상수라는 의미로 포인터 상수 라고 한다.

 

 

두번째 경우는 상수 포인터라고 부르며, 가리키고 있는 주소를 변경하지 못하게 할 때 사용한다.

즉, 포인터에 연결된 변수를 바꿀수 없게 한다.

 

세번째 경우는 연결된 상수, 포인터 모두 변경불가로 만드는 상수 포인터 상수 이다. 이거 쓸거면 걍 일반 상수 쓰자. 귀찮다.

 

'{Programing} > C.C++' 카테고리의 다른 글

c/c++ 템플릿  (0) 2020.01.13
c/c++ enum, preprocesser  (0) 2020.01.06
c/c++ 배열, 동적할당  (0) 2020.01.06
c/c++ 구조체 / 클래스 (3)  (0) 2020.01.03
c/c++ 구조체 / 클래스 (2)  (0) 2020.01.03

댓글