#따배씨 1.7 지역 범위 (Local Scope)
by #독개#
어떤 범위라고 하면 { } 중괄호를 의미한다
중괄호 내부 변수는 중괄호를 넘어가면 사라진다
인스턴스(메모리공간에 실제로 자기 공간을 가지는것)
지역 변수는 영역을 벗어나면 사용할 수 없게 됩니다
지역 변수가 차지하고 있던 메모리는 그 지역 변수가
영역을 벗어날때 '스택(stack)' 메모리로 반납됩니다.
반납된 메모리는 다음 지역 변수가 사용할 수 있도록 대기합니다.
'스택과 힙'에서 더 자세히 다룰예정
중요한개념
중요한 개념인데 실습을 통해 알아보자
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int x = 0; //int x(0); 이것과 같다 알고있자
cout << x << " " << &x << endl;
// int x = 1; //이건 문제가된다 그이유는 식별자 x가 두개기 때문이다
//하지만 아래 것들은 문제가 안된다 중괄호 때문 중괄호가 생기면 이 변수는 다른 메모리공간의 식별자이다
{
int x = 1;
cout << x << " " << &x << endl;
}
{
int x = 2;
cout << x << " " << &x << endl;
}
cout << x << " " << &x << endl;
return 0;
}
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int x = 0; //int x(0); 이것과 같다 알고있자
cout << x << " " << &x << endl;
// int x = 1; //이건 문제가된다 그이유는 식별자 x가 두개기 때문이다
//하지만 아래 것들은 문제가 안된다 중괄호 때문 중괄호가 생기면 이 변수는 다른 메모리공간의 식별자이다
{
int x = 1;
cout << x << " " << &x << endl;
}
{
x = 5;
// int x = 2;
cout << x << " " << &x << endl;
}
cout << x << " " << &x << endl;
return 0;
}
추론 해보기
#include <iostream>
using namespace std;
int main()
{
int x = 0;
cout << x << endl;
doSomething(x);
cout << x << endl;
return 0;
}
void doSomething(int x)
{
x = 123;
cout << x << endl;
}
중요개념
int sum(int t)
{
return 0;
}
int main()
{
int x = 0;
sum(3); //여기서 이렇게 호출을하면 실제 함수에선
}
-----------------------------------------------------------------------------
int sum(int t)
{
int t = 3;
return 0;
}
int t는 함수내에 { }에서만 존재하는 변수이다
🐱👓독하게 개발
'🔥 프로그래밍 학습 > C++' 카테고리의 다른 글
#따배씨 1.9 기본적인 서식 맞추기 (0) | 2022.11.03 |
---|---|
#따배씨 1.8 연산자와의 첫만남 (0) | 2022.11.03 |
따배씨 1.5 함수와의 첫 만남 (0) | 2022.11.02 |
#따배씨 1.4 입출력 스트림과의 첫만남 cin, cout (0) | 2022.11.01 |
C++ 오류 모음 (0) | 2022.10.31 |
블로그의 정보
독한 개발자
#독개#