C/C++에서 키워드 const의 의미 정리

const int num = 10;

정수형 상수 num을 선언하는 동시에 10으로 초기화한다.
상수(constant)의 뜻을 나 같은 경우 "read-only"(읽기 전용)로 해석했다.

const int *ptr1 = &val1

#include <iostream>
using std::cout;
using std::endl;

int main()
{
    int num = 20;

    const int* ptr = &num;

    cout<<*ptr<<endl;

    *ptr = 50; // 에러 발생

    cout<<*ptr<<endl;

    return 0;
}

포인터를 이용해서 포인터가 가리키는 변수의 값을 바꾸는 것을 금지한다.

int* const ptr2 = &val2;

포인터 변수의 (주소)값 자체를 바꾸는 것을 변경하는 것을 금지한다.
하지만, 연산자 *를 이용해 가리키는 변수의 값을 바꾸는 것은 허용이 된다.

const int* const ptr3 = &val3;

포인터 변수가 가리키는 값의 변경도 금지하고 포인터 변수 자체의 주소값을 바꾸는 것도 금지한다.

Leave a Reply