전역 범위
전역 범위는 블록 외부에 정의된 변수가 프로그램 끝까지 표시되도록 지정합니다.
예시
#include<stdio.h> int c= 30; /* global area */ main (){ int a = 10; printf (“a=%d, c=%d” a,c); fun (); } fun (){ printf (“c=%d”,c); }
출력
a =10, c = 30 c = 30
로컬 범위
로컬 범위는 블록 내에 정의된 변수가 해당 블록에서만 표시되고 블록 외부에서는 보이지 않도록 지정합니다.
블록 또는 함수(로컬)에서 선언된 변수는 해당 블록 내에서 액세스할 수 있으며 블록 외부에는 존재하지 않습니다.
예시
#include<stdio.h> main (){ int i = 1;// local scope printf ("%d",i); } { int j=2; //local scope printf("%d",j); } }
출력
1 2
변수가 해당 블록에서 동일한 이름으로 다시 선언되더라도 다르게 간주됩니다.
예시
#include<stdio.h> main (){ { int i = 1; //variable with same name printf ("%d",i); } { int i =2; // variable with same name printf ("%d",i); } }
출력
1 2
외부 블록과 동일한 이름을 가진 블록 내 변수의 재선언은 내부 블록을 실행하는 동안 외부 블록 변수를 마스크합니다.
예시
#include<stdio.h> main (){ int i = 1;{ int i = 2; printf (“%d”,i); } }
출력
2
내부 블록 외부에 선언된 변수는 내부 블록 내에서 선언되지 않은 경우 중첩 블록에 액세스할 수 있습니다.
예시
#include<stdio.h> main (){ int i = 1;{ int j = 2; printf ("%d",j); printf ("%d",i); } }
출력
2 1