[C++] 10. 전역변수, 지역변수, 매개변수 / stack의 메모리구조

2022. 5. 30. 21:36코딩 1막 <C++개념편>

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

'코딩 1막 <C++개념편>' 카테고리의 다른 글

[C++] 12. 피보나치 수열 문제  (0) 2022.05.30
[C++] 11. 재귀함수  (0) 2022.05.30
[C++] 09. 다양한 함수들  (0) 2022.05.30
[C++] 08. 함수의 개요  (0) 2022.05.30
[C++] 07. 다중반복문  (0) 2022.05.30