- 자동 변수 : 블럭을 벗어나면 해제가 된다 stack에 할당됨.
- 정적 변수 : 데이터 영역에 저장되며 프로그램이 실행되는 도중에 한번만 초기화가 되고 프로그램이 종료될 때 해제가 된다
- 동적 변수 : 이름이 없기 때문에 new로 할당을 해야하며 사용 이후 사용자가 반드시 해제해줘야 한다.
#include <iostream>
using namespace std;
int main() {
int num; // 자동 변수
{
static int num0 = 0; // 정적 변수
}
for (int i = 0; i < 10; i++) {
static int num1 = 0;
num1++;
cout << num1 << endl;
}
// 정적변수가 한번만 초기화 되는것을 나타낸다
int* p = new int; // 동적 변수
delete p;
return 0;
}
1
2
3
4
5
6
7
8
9
10
for문의 결과를 통해 정적 변수가 한번만 초기화되는 것을 알 수 있다.