C 범위 지정 규칙


모든 종류의 프로그래밍에서 범위는 프로그램에 정의된 변수가 존재하는 영역입니다. 이 영역을 넘어서는 변수에 접근할 수 없습니다. C 언어에는 변수를 선언할 수 있는 세 가지 위치가 있습니다.

  1. 함수 또는 블록 내부 로컬 변수

  2. 전역 변수

    모든 함수 외부
  3. 함수 매개 변수 정의 형식

    매개 변수

에서는 local변수, global변수, form

매개변수가 무엇인지 살펴보겠습니다.

로컬 변수

함수나 블록 내부에 선언된 변수를 지역 변수라고 합니다. 함수 또는 코드 블록 내부의 명령문에서만 사용할 수 있습니다. 지역 변수는 함수 외부에서는 알 수 없습니다. 다음은 지역변수를 사용하는 예이다. 여기서 변수 a, b, c는 모두 main() 함수의 지역 변수이다.

#include <stdio.h> int main (){  /* 局部变量声明 */  int a, b;  int c; 
  /* 实际初始化 */
  a = 10;
  b = 20;
  c = a + b;
 
  printf ("value of a = %d, b = %d and c = %d\n", a, b, c); 
  return 0;}

전역 변수

전역 변수는 함수 외부, 일반적으로 프로그램 상단에 정의됩니다. 전역 변수는 프로그램 수명 주기 내내 유효하며 모든 기능 내에서 액세스할 수 있습니다.

전역 변수는 모든 함수에서 액세스할 수 있습니다. 즉, 전역 변수는 선언된 후 프로그램 전체에서 사용할 수 있습니다. 다음은 글로벌 변수와 로컬 변수를 사용하는 예입니다.

#include <stdio.h> /* 全局变量声明 */int g; int main (){  /* 局部变量声明 */  int a, b; 
  /* 实际初始化 */
  a = 10;
  b = 20;
  g = a + b;
 
  printf ("value of a = %d, b = %d and g = %d\n", a, b, g); 
  return 0;}

프로그램에서 로컬 변수와 글로벌 변수의 이름은 동일할 수 있지만, 함수 내에서는 로컬 변수의 값이 로컬 변수의 값보다 우선합니다. 전역 변수. 예는 다음과 같습니다.

#include <stdio.h> /* 全局变量声明 */int g = 20; int main (){  /* 局部变量声明 */  int g = 10;
 
  printf ("value of g = %d\n",  g); 
  return 0;}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

value of g = 10

형식 매개변수

함수의 매개변수인 형식 매개변수는 함수 내에서 지역 변수로 처리됩니다. 전역 변수가 먼저 재정의됩니다. 예는 다음과 같습니다.

#include <stdio.h> /* 全局变量声明 */int a = 20; int main (){  /* 在主函数中的局部变量声明 */  int a = 10;  int b = 20;  int c = 0;  int sum(int, int);

  printf ("value of a in main() = %d\n",  a);
  c = sum( a, b);
  printf ("value of c in main() = %d\n",  c);  return 0;}/* 添加两个整数的函数 */int sum(int a, int b){
    printf ("value of a in sum() = %d\n",  a);
    printf ("value of b in sum() = %d\n",  b);    return a + b;}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

value of a in main() = 10value of a in sum() = 10value of b in sum() = 20value of c in main() = 30

지역 변수 및 전역 변수 초기화

지역 변수가 정의되면 시스템은 이를 초기화하지 않습니다. 직접 초기화해야 합니다. 전역 변수를 정의하면 시스템은 자동으로 다음과 같이 초기화합니다. 데이터 유형초기화 기본값int0char'