info8995 님의 블로그

22일차(상수, 포인터) 본문

TIL(Today I Learned)/C++

22일차(상수, 포인터)

info8995 2025. 1. 16. 20:39

1. C++의 상수(const)

  • const 키워드는 상수로 사용할 값을 선언할 때 사용된다.
  • L-valueR-value:
    • L-value: 메모리 주소를 갖는 변수.
    • R-value: 값을 나타내는 표현식.
  • 상수를 사용하는 이유:
    1. 의도 명확성: 변경되지 않는 값을 명시적으로 나타내어 코드의 가독성을 높임.
    2. 안전성: 의도치 않은 값 변경을 방지하여 안정적인 코드를 작성할 수 있음.
    3. 최적화: 컴파일러가 상수를 최적화하여 더 효율적으로 처리할 수 있음.
  • 상수를 사용하는 예시:

설명:

  1. const int num = 10;
    • num은 상수이며, 값을 변경할 수 없다. 즉, 프로그램이 실행되는 동안 num은 항상 10의 값을 가진다.
    • num = 20;과 같은 코드는 컴파일 에러를 발생시킨다.
  2. const int *ptr = #
    • ptr은 num의 주소를 가리키는 포인터이다.
    • 포인터가 가리키는 값(*ptr)은 상수이므로, *ptr = 20;과 같은 값 변경은 허용되지 않는다.
    • 하지만 포인터 자체(ptr)는 상수가 아니므로, 다른 주소를 가리키도록 변경할 수 있다.

2. Void와 Null

  • void: 반환 값이 없는 함수에서 사용된다.
  • nullptr: 포인터가 아무 값도 가리키지 않을 때 사용.
  • void*: 모든 타입의 포인터를 담을 수 있는 포인터 타입. 
  • 예: void*를 이용하여 다양한 데이터 타입의 주소를 담기.

 

3. 상수 포인터와 포인터 상수

  • 상수 포인터(const pointer): 가리키는 값을 변경할 수 없다. 

  • 포인터 상수(pointer const): 포인터가 가리키는 주소를 변경할 수 없다.
     

마무리

오늘은 C++의 상수와 포인터 개념에 대해 깊이 있게 학습했습니다. 이 내용을 바탕으로 더 복잡한 코드에서도 상수와 포인터를 적절히 사용할 수 있도록 연습해야겠습니다