const 키워드란?

변수 선언할때 아래와 같이 코드를 작성한다.

int a = 10;

const는 앞에다가 const키워드를 붙여서 사용할 수 있다. constant(상수)라는 뜻으로 값을 한번 대입하면 바꿀 수 없다.

const int a = 10;
a = 11 // cannot assign to variable 'a' with const-qualified type 'const int'

왜 씀

이 const라는 것은 왜 쓸까? 코딩을 하다보면 값을 변경할 수 없도록 해야 할 때가 있다. (당연하게도)

더 자세히 알아보자

const int a;라고만 하고 초기값을 설정해주지 않으면 값을 대입할 수도 없고 쓰레기 값이 들어간다. 사실상 무의미하기 때문에 const키워드를 사용한다면 반드시 초기값을 설정해야 한다.

const int a;
a = 11// Errorprintf("%d", a);

또 아래와 같이 int와 const를 바꿔서 작성해도 상관없다. 하지만 권장하지는 않는다.

int const a = 10;
printf("%d", a);

포인터와 함께 사용할 때는 순서를 주의해야 한다.

상수 포인터

const를 포인터 타입 뒤에다가 붙이면 된다.

포인터가 상수이다. 포인트를 변경할 수 없다. 값은 변경할 수 있다.

int a = 10;
int b = 20;

int* const ptr2 = &a;
ptr2 = &b;// Error
*ptr2 = 30;// 값은 변경 가능

상수에 대한 포인터