Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어의 지역 및 전역 범위 규칙은 무엇입니까?

<시간/>

전역 범위

전역 범위는 블록 외부에 정의된 변수가 프로그램 끝까지 표시되도록 지정합니다.

예시

#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