C++2012. 5. 13. 12:04

//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이다. 이와 같이 함수 내에서 선언한 변수는 매회 초기화된다. 하지만 함수의 밖에서 쓴 변수는 최초에 한 번 초기화 될 뿐이다.

이 장의 요점

- 함수의 밖에 선언한 변수는, 그 이후에 쓰여진 함수 전체에서 사용할 수 있다.

- 함수 안에서 선언한 변수는, 그 함수 내에서만 사용할 수 있다.

- 함수 안에서 선언한 변수는, 함수가 끝나면 파기된다.

One9a.zipOne9b.zip

'C++' 카테고리의 다른 글

11. 조건 분기  (0) 2012.09.05
10. 값의 입력  (0) 2012.05.13
8. void  (0) 2012.05.12
7. 함수  (0) 2012.05.12
6. 내용을 바꾸자  (0) 2012.05.11
Posted by 멜데스