Latest web development tutorials

règles de portée C

Tout type de programmation, le champ d'application est défini dans le programme région variable qui existe au-delà de la région variable ne peut pas être consultée. Langage C, il y a trois endroits où vous pouvez déclarer des variables:

  1. Dans les variableslocales dans un bloc ou
  2. Toutes les variablesglobales en dehors de la fonction
  3. Les paramètres de fonction définissent laforme de paramètre

Voyons quelles sont les variableslocales, variables globaleset paramètresformels.

Les variables locales

Variable déclarée dans une fonction ou un bloc appelé variables locales. Ils ne peuvent être utilisés par la fonction ou bloc de code dans l'instruction. Les variables locales en dehors de la fonction est inconnue. Ce qui suit sont des exemples de l'utilisation de variables locales. Ici, toutes les variables a, b et c sont des variables locales fonction 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;
}

Variables globales

Les variables globales sont définies dans la fonction externe, généralement en haut du programme. Les variables globales tout au long du cycle de vie de l'application sont valables dans toutes les fonctions internes peuvent accéder à des variables globales.

Les variables globales peuvent être consultés par toute fonction. En d'autres termes, après la déclaration variable globale, il est disponible dans tout le programme. Ce qui suit est l'utilisation des variables globales et locales des exemples:

#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;
}

Dans le programme, les variables locales et variables globales peuvent être les mêmes, mais à l'intérieur d'une fonction, les variables locales remplacent la valeur d'une variable globale. Voici un exemple:

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

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

value of g = 10

paramètres formels

Paramètres de fonction, les paramètres formels sont traités comme des variables locales au sein de la fonction, ils donneront la priorité à remplacer la variable globale. Voici un exemple:

#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;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

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

Initialisation variables locales et globales

Quand une variable locale est définie, le système n'initialise pas, vous devez l'initialiser vous. Lorsque vous définissez les variables globales, le système va automatiquement initialiser comme suit:

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

variables correctement initialisée est une bonne pratique de programmation, sinon le programme peut parfois produire des résultats inattendus, car une variable non initialisée provoque une certaine valeur des déchets est déjà disponible dans l'emplacement de mémoire.