변수
: 프로그램에서 데이터를 저장하는 공간
|
변수 선언
컴파일러에게 어떤 변수를 사용하겠다고 미리 알리는 것
식별자(identifier)
식별할 수 있게 해주는 이름
- 변수/상수/클래스/함수 이름
- 규칙
- 알파벳 문자와 숫자, 밑줄 문자( _ )로 구성
- 첫번째 문자는 반드시 알파벳 또는 밑줄 문자( _ )
- 대문자와 소문자 구별
- C언어의 키워드와 똑같은 이름 허용 X
ex)
|
- 키워드(keyword): C++언에어서 고유한 의미를 가지고 있는 특별한 단어
- 예약어라고도 한다.
- 식별자로 쓸 수 없다.
변수의 속성
- 이름, 타입, 크기, 값 + 범위, 생존 시간, 연결
전역 변수
- 초기화가 안되어있어도 초기값 0
지역 변수
- 매개변수도 일종의 지역 변수 → 메모리에 주소 공간 만들어짐.
+ 변수 다른 공간(블럭)에서 같은 이름 사용 가능
Scope(범위)
변수가 접근되고 사용되는 범위
- 변수의 범위는 변수가 선언되는 위치에 따라서 결정된다.
- 종류
- 전역 변수
- 함수의 외부에서 선언
- 지역 변수
- 블록 안에서 선언
- 전역 변수
- C는 함수 단위로 변수 구분, C++은 블록 단위로 변수 구분
Life Time(생존 시간)
메모리에 존재하는 시간
- 종류
- 정적 할당
- 프로그램 실행 시간 동안 계속 유지
- 프로그램 시작 시 생성, 프로그램 종료 시 소멸
- 실행 안해봐도 아는 것
- 전역 변수
- 자동 할당
- 블록에 들어갈 때 생성, 블록에서 나올 때 소멸
- 실행해봐야 아는 것
- 지역 변수
- 정적 할당
- 결정 요인
- 변수가 선언된 위치
- 저장 유형 지정자
- static
- 전역 변수에 쓰이는 경우
- scope를 줄임.
- 지역 변수에 쓰이는 경우
- scope를 늘림
- 정적 변수로 바뀜.
- BSS영역
- static int a = 1; 로 초기화해도 static int a; a = 1; 한 것과 같음.
- 전역 변수에 쓰이는 경우
- extern
- 전역 변수에 쓰이며, scope를 늘림.
- static
연결(linkage)
다른 영역에 있는 변수와의 연결 상태
728x90
반응형
'C++' 카테고리의 다른 글
[C++] Types (0) | 2024.04.29 |
---|---|
[C++] Control Structures (0) | 2024.04.29 |
[C++] Array (0) | 2024.04.29 |
C와 공통점 (0) | 2022.09.07 |
Hello, World 출력 (0) | 2022.09.05 |