이번 Step에서 잡아야 할 것

  • 선언(Declaration): 변수를 만든다(공간 확보)
  • 초기화(Initialization): “처음 값”을 넣는다(선언과 함께 자주 등장)
  • 대입(Assignment): 이미 있는 변수에 값을 다시 넣는다
  • 스코프/수명: 어디서 보이고(범위), 언제까지 살아있는지(수명)

문법

타입 변수이름;
  • 예: int hp;
  • 타입(Type): 저장할 데이터 종류(크기/해석 방식)
    • 예: int는 정수(보통 4바이트)
  • 이름(Name): 변수에 붙일 식별자(영어로, 용도 드러나게)
  • 세미콜론(;): “문장이 끝났다”는 표식 → C++에서는 필수

자주 나오는 3가지를 코드로 구분해봅시다.

int hp;         // 선언: 공간 확보 (값은 아직 정해지지 않았을 수 있음)
hp = 100;       // 대입: 값을 다시 넣기

int mp = 50;    // 선언 + 초기화: 만들면서 첫 값을 넣기
mp = 30;        // 대입

변수 이름 규칙

  • 영어로 작성 (한글/특수문자 지양)
  • 대소문자 구분: hpHP는 다른 이름
  • 숫자 포함 가능: 단, 첫 글자로 숫자는 불가 (hp1 가능, 1hp 불가)
  • 언더스코어(_) 사용 가능
  • 예약어 사용 불가: int, return 같은 키워드는 이름으로 쓸 수 없음

실전에서 추천하는 네이밍 감각은 이 정도면 충분합니다.

  • 의미가 드러나게: hp, maxHp, playerLevel
  • 일관된 스타일: lowerCamelCase 또는 snake_case 중 하나로 통일
  • 단위/의미 포함: respawnTimeSec, damagePercent 처럼 혼동 방지

전역 변수

  • main() 안이 아닌 에 선언된 변수
  • 보통 Data 영역에 놓이고, 프로그램 시작부터 끝까지 유지됩니다(수명이 김)
  • 코드가 위에서 아래로 읽히기 때문에, 사용하기 전에 선언되어 있어야 합니다.
int g_hp = 100;   // 전역 변수(예시)

int main() {
    g_hp -= 10;
}

주의할 점도 같이 기억해두면 좋습니다.

  • 전역 변수는 어디서든 접근 가능해져서, 프로젝트가 커질수록 추적/디버깅이 어려워질 수 있음
  • 그래서 “정말 여러 곳에서 공유해야 하는 값”에만 신중하게 사용합니다.

체크 질문 (스스로 답해보기)

  • 선언/초기화/대입을 각각 한 문장으로 설명할 수 있을까?
  • int hp; 직후에 hp를 출력하면 항상 안전할까? 왜 그럴까?
  • 전역 변수는 왜 편하지만, 프로젝트가 커질수록 위험해질까?

profile
李家네_공부방

0개의 댓글