코딩 1막 <C++개념편>
[C++] 10. 전역변수, 지역변수, 매개변수 / stack의 메모리구조
sangsangpluss
2022. 5. 30. 21:36
728x90
1. <전역변수와 지역변수의 차이>
#include <iostream>
using namespace std;
// 전역변수는 메모리영역 중 데이터영역에 할당 됨
// 매개변수와 지역변수는 메모리영역 중 스택영역에 할당 됨.
//전역변수 : 프로그램이 끝날때 할당이 해제되기 때문에 다른곳에서도 참조가능
int value = 30;
int num = 5;
void Func(int input)
{
cout << num << endl;
value = input;
}
void main()
{
//지역변수 : 함수내 할당되는 변수는 지역변수, 괄호가 끝날 때 할당해제
int num = 6;
Func(50);
cout << value << endl;
}
2. <스택의 메모리 구조>
#include <iostream>
using namespace std;
void Func3()
{
cout << "함수3 실행 시작" << endl;
cout << "함수3 실행 끝" << endl;
}
void Func2()
{
cout << "함수2 실행 시작" << endl;
Func3();
cout << "함수2 실행 끝" << endl;
}
void Func1()
{
cout << "함수1 실행 시작" << endl;
Func2();
cout << "함수1 실행 끝" << endl;
}
void main()
{
cout << "메인 시작" << endl;
Func1();
cout << "메인 끝" << endl;
}
728x90