chyam

[c++] - const 본문

카테고리 없음

[c++] - const

chyam_eun 2025. 5. 14. 16:57

const

  • 한번 정하면 값이 변하지 않음.
  • 자료형의 앞이나 뒤에 const를 붙여준다.
  • 변수를 정의할때 반드시 초기화 해야한다. 할당을 통해 값을 변경할 수 없음.
const double gravity { 9.8 }; 
int const age { 22 };
const double gravity { 9.8 };
gravity = 9.9; // 에러 발생
const double gravity;  //에러 발생

 

런타임 상수 

  • 런타임이 되어서야 확인할 수 있는 상수.
  • ex) 사용자의 입력 

컴파일 시간 상수

  • 컴파일 시간에 초깃값을 확인할 수 있는 상수.
  • ex) const double gravity { 9.8 };
  • => constexpr 사용해도됨. 

 

포인터와 const

const int value = 5; 
int* ptr = &value; // 에러 발생. const int* ptr = &value; 해야함. 
*ptr = 6; // 에러 발생. const라서 값을 변경할 수 없음.
const int value = 5;
const int* ptr = &value;
int value = 5;
const int* ptr = &value; // 가능
value = 10; // 가능. value는 const가 아니니까 값을 수정해도된다.
int value = 5;
const int* ptr = &value; // 가능
*ptr = 6; // 불가능. 포인터부분이 const이므로 직접 수정할 수 없다.
int value = 5;
int value2 = 10;
const int* ptr = &value; // 가능
ptr = &value2; // 가능. 다른 값을 가리킬 수 있다.

 

 

상수 포인터 

  • 초기화 후에 가리키는 주소를 변경할 수 없는 포인터.
  • 자료형 뒤에 const 사용
  • 선언시 초기화하기. 항상 같은 주소 가리킴. 
  • 포인터 역참조하여 값 변경하는건 가능함 
int value = 5;
int value2 = 10;
int* const ptr = &value;
ptr = &value2; // 에러 발생. 주소를 변경할수없음.

 

 

 

C++ 02.10 - 상수 (const, constexpr, and symbolic constants)

02.10 - 상수 (const, constexpr, and symbolic constants) 상수 (constant) 상수란 그 값이 변하지 않는 불변 값이다. 지금까지 본 변수들은 모두 언제든지 값이 변할 수 있었다. int x { 4 }; // initialize x with the value o

boycoding.tistory.com

위 블로그를 참조하였습니다.