이번 포스트를 읽어보시면 변수의 범위를 쉽게 이해 할 수 있다.
trust and follow me.

우선 위에 올려놓은 소스코드를 분석하며 차근차근 설명하겠다.

3,4번째 줄 : print_x(int x), print_gx(void)함수를 선언한 것이다.

6번째 줄 : 전역변수 x를 정의하고 20으로 초기화 한다. 전역변수는 함수의 밖에서 정의 되며 일반적으로는 main()함수 전에 정의한다는 사실을 알아두자. 또 이해를 돕기위해 한마디하자면 전역변수는 소스코드내 전지역에서 사용할 수 있게 정의된 변수를 말한다.

10번째 줄 : 지역변수 x를 정의하고 5로 초기화하였다. 지역변수는 함수내에서 전역변수보다 참조우선순위가 높다는점 알아두자.

11번째 줄 : 함수내에서는 지역변수가 우선순위를 갖기 때무에 5가 출력이 될 것이다. main()함수 내에서 지역변수 x를 정의하였기 때문에 전역변수 x는 사용할 수 없다.

13번째 줄 : print_X() 함수를 호출한다. 인수값은 보이다시피 10이다.

14번째 줄 : print_gx를 호출한다.

20번째 줄 : 인수로 넘어온 x를 출력한다. 함수내에서는 인수 값으로 사용되는 지역변수가 전역변수보다 우선하여 사용되기 때문에 10이 출력되며 마찬가지로 이함수 내에서도 전역변수 x를 사용할 수 없다.

25번째 줄 : 전역변수 x를 출력한다. 출력 값은 앞서 선언했다 시피 20이 되며, 함수내에서 사용된 지역변수가 없기 때문에 6번째 줄에서 정의한 전역 변수가 x가 사용되는 것이다.



<결과>

ChQPa
Posted by 츠큐파 ChQPa

댓글을 달아 주세요