//val3.cpp
#include<iostream.h>
int a = 0;
void Test()
{
int b = 1;
cout << a << b << c << d << endl;
return;
}
int c= 2;
int main()
{
int d = 3;
Test ();
cout << a << b << c << d << endl;
return;
}
---------------------------------------------------------------------------------------------이 경우 'c', 'd', 'b'는 정의되어 있지 않은 식별자라는 오류가 검출된다.
아무래도 Test 함수의 안에는 c와 d가, main 함수의 안에는 b를 사용할 수 없는 것 같다.
즉, 함수 내에서 선언된 변수는 그 함수 밖에서는 사용할 수 없다. 또한 함수 밖에 선언된 변수라도, 그 변수를 선언하기 전까지 함수에서는 그 변수를 사용할 수 없다.
---------------------------------------------------------------------------------------------//val4.cpp
#include<iostream.h>
int a = 0;
void Inc()
{
int b = 0;
a++;
b++;
cout << a << " <-a ㅣ b-> " << b << endl;
return;
}
int main()
{
Inc ();
Inc ();
Inc ();
return 0;
}
---------------------------------------------------------------------------------------------
b쪽은 아무리 시간이 흘러도 1이다. 이와 같이 함수 내에서 선언한 변수는 매회 초기화된다. 하지만 함수의 밖에서 쓴 변수는 최초에 한 번 초기화 될 뿐이다.
이 장의 요점
- 함수의 밖에 선언한 변수는, 그 이후에 쓰여진 함수 전체에서 사용할 수 있다.
- 함수 안에서 선언한 변수는, 그 함수 내에서만 사용할 수 있다.
- 함수 안에서 선언한 변수는, 함수가 끝나면 파기된다.