본문 바로가기
C/개념, 이해

[C/개념, 이해]const 포인터 C언어

by starfish22 2021. 11. 18.
728x90

▶const : 상수 선언

 

▶사용 예시

(1) const int *p; 가리키는 값 고정

#include <stdio.h>

int main()
{
    int a = 10, b = 20;

    const int *p = &a;
    //포인터 p가 가리키는 값(a) 고정

    *p = 20; //(X)
    //a값을 바꾸려하기 때문에 안됨

    p = &b; //(O)
    //p의 주소만 바뀌어 가능

    return 0;
}

 

(2) int *const p; 가리키는 주소 고정

#include <stdio.h>

int main()
{
    int a = 10, b = 20;

    int *const p = &a;
    //포인터 p가 가리키는 주소(&a) 고정

    *p = 20; //(O)
    //a값이 바뀌어 가능

    p = &b; //(X)
    //p의 주소값을 바꾸려하기 때문에 안됨

    return 0;
}

 

(3) const int *const p; 가리키는 값 , 주소 고정

#include <stdio.h>

int main()
{
    int a = 10, b = 20;

    const int *const p = &a;
    //포인터 p가 가리키는 주소(&a)와 가리키는 값(a) 고정

    *p = 20; //(X)
    //a값이 바뀌어 안됨

    p = &b; //(X)
    //p의 주소값이 바뀌어 안됨

    return 0;
}
 

▶사용하는 이유

프로젝트를 만드는 협업을 할 때 함수의 인자로 const 포인터를 사용하여 상대방에게 손대지 말라는 표시 가능

728x90

'C > 개념, 이해' 카테고리의 다른 글

함수 포인터 C언어  (0) 2021.11.21
char , wchar_t C언어  (0) 2021.11.19
volatile 변수 C언어  (0) 2021.11.18
비트연산자와 사용예시 C언어  (0) 2021.11.18

댓글