지속가능티끌/C . C++2019. 10. 21. 14:08

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

 


 

Posted by 리치굿맨

댓글을 달아 주세요