1학년 대학 수업/C++ 프로그래밍

const란?

hawon6691 2025. 9. 11. 15:47
728x90

C/C++에서 const는 "변하지 않는 값"을 의미하는 키워드입니다. 즉, const를 붙이면 그 변수나 데이터는 수정할 수 없도록 컴파일러가 강제합니다.


🔍 기본 개념

const int num = 10;
num = 20; // ❌ 오류 발생! num은 변경 불가
  • const int num = 10; → num은 상수처럼 동작하며, 이후 값을 바꿀 수 없습니다.
  • const는 코드의 안정성을 높이고, 실수로 값이 바뀌는 것을 방지해줍니다.

🧠 비유로 설명해볼게요

📦 const는 "봉인된 상자"

  • 일반 변수는 열고 닫을 수 있는 상자예요. 언제든 값을 넣고 바꿀 수 있죠.
  • const 변수는 봉인된 상자예요. 처음에 넣은 값은 절대 바꿀 수 없어요.
  • 누군가 실수로 열려고 하면 컴파일러가 "안 돼!" 하고 막아줍니다.

🧩 다양한 const 사용 예시

1. 기본 변수

const float pi = 3.14159;
  • pi는 원주율로, 절대 바뀌면 안 되는 값이죠.

2. 함수 매개변수

void printName(const char* name);
  • name을 출력만 하고 수정하지 않겠다는 의도를 명확히 표현.

3. 멤버 함수에서

class Circle {
public:
    double getArea() const; // 객체 상태를 변경하지 않음
};
  • const 함수는 객체의 내부 값을 바꾸지 않겠다는 약속이에요.

4. 포인터와 함께

const int* ptr;     // 값은 못 바꿈, 주소는 바꿀 수 있음
int* const ptr2;    // 주소는 못 바꿈, 값은 바꿀 수 있음
const int* const ptr3; // 둘 다 못 바꿈
  • 헷갈릴 수 있지만, const 기준으로 오른쪽이 고정된다고 기억하면 쉬워요.

✅ const의 장점

장점설명

실수 방지 값이 바뀌면 안 되는 상황에서 안전하게 보호
코드의 의도 명확화 "이건 읽기 전용입니다"라는 메시지를 전달
최적화 가능 컴파일러가 캐싱하거나 레지스터에 넣기 쉬움
인터페이스 신뢰성 향상 라이브러리나 API 설계 시 안정성 확보

C/C++에서 const는 단순한 키워드가 아니라 코드의 안전성과 신뢰성을 높이는 도구예요.

 
728x90