C/C++에서 const
int my_int; // 일반변수는 선언과 동시에 초기화 안해도 됨.
const int my_c_int = 1; // const 는 선언과 동시에 초기화 해야함.
int * my_p_int; // my_p_int는 일반포인터변수이므로 초기화 안해도 됨.
/*
const int * (이것과 int const * 는 같은의미)
const int 의 포인터변수 선언시 사용됨.
즉, 아래 선언처럼 하면 my_p_c_int 는 const int 인것의 포인터변수.
*/
const int * my_p_c_int = &my_int; // 틀림. my_p_c_int 는 const int 인것의 포인터 변수여야 함.
const int * my_p_c_int = &my_c_int; //가능. my_p_c_int 가 const int 인것의 주소를 받고 있음.
*my_p_c_int = 100; // 틀림. my_p_c_int 는 const int 인것의 포인터이므로 그 값을 변경하는것 틀림.
my_p_c_int = &my_c_int; // 가능. 포인터변수 자체는 const 아니므로.
/*
int * const
int형 포인터변수를 const 로 선언하는것.
*/
int * const my_c_p_int = &my_c_int; //int 형 포인터변수인데 그 포인터가 const
int * const my_c_p_int; // 틀림. const 형은 초기값 지정 필수.
*my_c_p_int = 100; // 가능. 포인터 변수가 const 이므로 그 값을 변경하는건 가능.
my_c_p_int = &my_p_int; // 틀림. const 포인터 값변경 불가.
/*
int const * const
const int 형 포인터 변수를 const 로 선언하는것.
*/
int const * const my_cp_c_int = &my_c_int;
//혼선주의. 아래 2개 같은 것.
const int * my_int
int const * my_int
첫등록 : 2019년 10월 21일
최종수정 :
본 글 단축주소 : https://igotit.tistory.com/2343
'VisualStudio.C++.C# > C . C++' 카테고리의 다른 글
C/C++. #error. 컴파일시 사용자 지정 오류 메시지 출력 하고 컴파일 종료 (0) | 2019.10.22 |
---|---|
C/C++. #define. #, ## 등 (0) | 2019.10.22 |
C,C++. enum (0) | 2019.05.16 |
C,C++. enum with get string. (0) | 2019.05.12 |
C++ 클래스. 함수 오버라이딩. 가상함수. 순수가상함수. 추상 클래스.인터페이스 클래스. (0) | 2017.06.23 |
댓글