const 한정자

이유정·2023년 11월 21일

c언어

목록 보기
16/16

1. int * const - 상수 포인터

포인터가 상수이기 때문에 포인터가 가리키는 값은 변경 가능
가리키는 주소는 변경할 수 없음

int main() {
    int num1 = 10;
    int num2 = 20;

    // const 포인터 선언
    int *const ptr = &num1;

    // 주소 변경 시도 (에러)
    // ptr = &num2;

    // 값 변경 가능
    *ptr = 30;

    return 0;
}

2. int const * or const int * - 포인터를 통한 상수 값

포인터가 가리키는 값이 상수이기 때문에 포인터 자체 주소 변경 가능
해당 값은 변경할 수 없음

int main() {
    int num1 = 10;
    int num2 = 20;

    // 상수 값을 가리키는 포인터 선언
    const int *ptr = &num1;

    // 값 변경 시도 (에러)
    // *ptr = 30;

    // 주소 변경 가능
    ptr = &num2;

    return 0;
}

3. int * - 일반적인 포인터

포인터가 가리키는 주소와 해당 주소에 있는 값을 모두 변경 가능

int main() {
    int num1 = 10;
    int num2 = 20;

    // 일반 포인터 선언
    int *ptr = &num1;

    // 주소 변경 가능
    ptr = &num2;

    // 값 변경 가능
    *ptr = 30;

    return 0;
}
profile
안녕하세요 이유정입니다. 반갑습니다.

0개의 댓글