Latest web development tutorials

C의 범위 규칙

프로그래밍 어떤 종류는 범위가 액세스 할 수없는 가변 영역을 넘어 존재하는 프로그램 가변 영역으로 정의된다. C 언어는 변수를 선언 할 수있는 세 곳이 있습니다

  1. 블록 내에서지역 변수 또는
  2. 함수 외부의 모든전역 변수
  3. 함수 파라미터는 파라미터형태를 정의

지역 변수, 전역변수와형식매개 변수이 무엇인지 살펴 보자.

지역 변수

변수는 지역 변수라는 함수 또는 블록 내부에 선언했다. 이들은 단지 문 내부 기능 또는 코드 블록에 의해 사용될 수있다. 함수 외부 지역 변수를 알 수 없습니다. 다음 로컬 변수의 사용의 예이다. 여기서, 변수 A, B 및 C의 모두는 로컬 변수를 주 () 함수이다.

#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() = 10
value of a in sum() = 10
value of b in sum() = 20
value of c in main() = 30

로컬 및 글로벌 변수를 초기화

로컬 변수가 정의되면, 시스템은 스스로를 초기화해야합니다, 초기화되지 않습니다. 전역 변수를 정의하면 다음과 같이, 시스템은 자동으로 초기화한다 :

数据类型初始化默认值
int 0
char '\0'
float 0
double 0
pointer NULL

제대로 초기화 변수는 초기화되지 않은 변수가 어떤 쓰레기 값이 이미 메모리 위치에서 사용할 수 있습니다 원인이 있기 때문에 다른 프로그램이 때때로 예기치 않은 결과가 발생할 수 있습니다, 좋은 프로그래밍 방법입니다.