프로그래밍/C, C++

포인터 대상의 const 선언

유니디니 2020. 12. 12. 00:18
728x90
반응형

포인터 변수가 참조하는 대상의 변경을 허용하지 않는 Const 선언하기🙃

 

#include <stdio.h>

int main(void){
    int n = 30;
    const int *nptr = &n;
    *nptr = 1000;
    
    printf("에러코드입니다. %d", *nptr);
    
    return 0;
}

 

결과는 에러이다. const 선언 포인터 변수는 "포인터 변수 nptr을 사용하여 저장된 값을 변경하는 것이 불가능하다." 그러나, 변수 값을 직접 변경하는 것은 허용된다.

 

즉, n의 값을 n = 9000으로 변경할 수 있다는 뜻이다. 

 

또한, const 선언 변수는 변경시 오류가 발생한다.

 

#include <stdio.h>

int main(void){
    const double ratio = 55.33468;
    ratio = 2222.5567;
    
    printf("에러코드입니다. %f", ratio);
    
    return 0;
}

 

ratio와 같은 중요한 변수를 보호할 때 사용할 수 있으며, 실행파일이 생성되기 전에 막을 수 있다는 장점이 있다.

 

*const 선언의 의미 : 변수들에 대한 안정성을 높이며, 컴파일러가 발견하지 못하는 문제점을 막을 수 있다.

반응형