adplus-dvertising

Variables locales et globales en langage C

Variables locales et globales en langage C

Une portée dans n'importe quel langage de programmation est une région du programme dans laquelle une variable définie peut avoir son existence et au-delà, l'accès à la variable est impossible. Il y a trois endroits où les variables peuvent être déclarées en langage de programmation C.

  • À l'intérieur d'une fonction ou d'un bloc, appelées variables locales.
  • En dehors de toutes les fonctions, appelées variables globales.
  • Dans la définition des paramètres de fonction appelés paramètres formels.

Variables locales

Les variables déclarées à l'intérieur d'une fonction ou d'un bloc sont appelées variables locales. Ils ne peuvent être utilisés que par des instructions contenues dans cette fonction ou ce bloc de code. Les variables locales ne sont pas connues pour les fonctions en dehors de leurs portées.

Exemple 1 :
                                void fonction_1()
                                {
                                    int a, b; // vous pouvez utiliser a et b entre accolades seulement
                                }
                                     
                                void fonction_2()
                                {
                                    printf("%d\n", a); // ERREUR, fonction_2() ne connait aucune variable a
                                }
                                    
                            

a et b sont appelés variables locales. elles sont disponibles uniquement dans la fonction dans laquelle elles sont définies (dans ce cas fonction_1()). Si vous essayez d'utiliser ces variables en dehors de la fonction dans laquelle elles sont définies, vous obtiendrez une erreur.
Un autre point important est que les variables a et b n'existent que jusqu'à l'exécution de fonction_1(). Dès que la fonction fonction_1() termine les variables a et b sont détruites.

 Vous pouvez utiliser les mêmes noms de variable dans une fonction différente et elles ne seront pas en conflit les uns avec les autres.

Variables globales

Les variables globales sont définies en dehors d'une fonction, généralement en haut du programme. Les variables globales conservent leurs valeurs tout au long de la vie de votre programme et sont accessibles dans n'importe quelle fonction définie dans le programme.

Exemple 2 :
                                #include< stdio.h>
                                int a; // variable global
                                void fonction_1()
                                {
                                    printf("Fonction 1");
                                    a=5;
                                    printf("a=%d",a); 
                                }
                                     
                                void fonction_2()
                                {
                                    printf("Fonction 2");
                                    printf("%d\n", a);
                                }
                                int main(void){
                                    fonction_1();
                                    fonction_2();

                                    printf("bye");

                                    return 0;
                                }
                                    
                            
Fonction 1
a = 5
Fonction 2
a = 5
bye

Un programme peut avoir le même nom pour les variables locales et globales, mais la valeur de la variable locale dans une fonction aura la priorité.

Exemple 3 :
                                #include< stdio.h>

                                int a; // variable global

                                void fonction_1()
                                {
                                    int a=3;
                                    printf("Fonction 1");
                                    printf("a=%d",a); 
                                }
                                     
                                void fonction_2()
                                {
                                    printf("Fonction 2");
                                    printf("%d\n", a);
                                }

                                int main(void){
                                    fonction_1();
                                    fonction_2();

                                    printf("bye");

                                    return 0;
                                }
                                    
                            
Fonction 1
a = 3
Fonction 2
a = 0
bye

Paramètres formels

Les paramètres formels sont traités comme des variables locales au sein d'une fonction et ils ont la priorité sur les variables globales.

Exemple 3 :
                                #include< stdio.h>

                                int a; // variable global

                                void fonction_1(int a)
                                {
                                    a=3;
                                    printf("Fonction 1");
                                    printf("a=%d",a); 
                                }
                                     
                                void fonction_2()
                                {
                                    printf("Fonction 2");
                                    printf("%d\n", a);
                                }

                                int main(void){

                                    fonction_1(a);
                                    fonction_2();

                                    printf("bye");

                                    return 0;
                                }
                                    
                            
Fonction 1
a = 3
Fonction 2
a = 0
bye

Initialisation des variables locales et globales

Lorsqu'une variable locale est définie, elle n'est pas initialisée par le système, vous devez l'initialiser vous-même. Les variables globales sont automatiquement initialisées par le système lorsque vous les définissez comme suit :

Type de donnéesValeur par défaut initiale
int0
char'\0'
float0
double0
pointeurNULL

C'est une bonne pratique de programmation d'initialiser les variables correctement. Dans le cas contraire, votre programme pourrait produire des résultats inattendus, car les variables non initialisées prendront une valeur inattendue(garbage value) déjà disponible à leur emplacement mémoire.

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.