Langage C

Notification de cookies

Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Plus d'informations

Variables et constantes en C-C++

Une variable en termes simples est un lieu de stockage auquel de la mémoire est allouée. Fondamentalement, une variable utilisée pour stocker une forme de données. Différents types de variables nécessitent différentes quantités de mémoire et disposent d'un ensemble d'opérations spécifique qui peut leur être appliqué.

Déclaration

type nom_variable;

//ou pour plusieurs variables:
type nom-variable1, nom-variable2, nom-variable3;
Un nom de variable peut être composé d'alphabets (en majuscules et minuscules), de nombres et du caractère de soulignement "_". Toutefois, le nom ne doit pas commencer par un chiffre.
Exemple 1 :
                                int a;
                                float b=1, c;
                            
Règles de nommer des identificateurs de variables
  •   Un identificateur valide peut avoir des lettres (en majuscules et en minuscules), des chiffres et des soulignements.
  •   La première lettre d'un identificateur doit être une lettre ou un trait de soulignement.
  •   Vous ne pouvez pas utiliser des mots-clés comme identificateurs.
  •   Il n'y a pas de règle sur la longueur d'un identificateurs. Cependant, certains compilateurs peuvent rencontrer des problèmes si l'identificateur comporte plus de 31 caractères.
Vous devriez toujours essayer de donner des noms significatifs aux variables. Par exemple: "Age" est un meilleur nom de variable que "a".

C est un langage fortement typé. Cela signifie que le type de variable ne peut pas être modifié une fois déclaré. Par exemple:

Exemple 2 :
                                int a;
                                a=5.6 // Erreur
                                float a; //Erreur
                            

Ici, le type de "a" int. Vous ne pouvez pas attribuer une valeur à virgule flottante (décimale) 5.5 à cette variable. En outre, vous ne pouvez pas redéfinir le type de données de la variable. Par ailleurs, pour stocker les valeurs décimales en C, vous devez déclarer son type à double ou float.

Constantes

Si vous voulez définir une variable dont la valeur ne peut pas être changée, vous pouvez utiliser le mot-clé const. Cela va créer une constante. Exemple,

Exemple 3 :
                                const double PI=3.14;
                            

Ici, PI est une constante; sa valeur ne peut être changée.

Exemple 4 :
                                const double PI=3.14;
                                PI=4.6; // Erreur
                            

Vous pouvez également définir une constante en utilisant #define.

Variables statiques

Les variables statiques ont la propriété de préserver leur valeur même lorsqu'elles sont hors de leur portée! Par conséquent, les variables statiques conservent leur valeur antérieure dans leur portée précédente et ne sont pas initialisées de nouveau dans la nouvelle portée.

Syntaxe :
                                static type nom_var=valeur;
                            
Voici quelques faits intéressants sur les variables statiques en C.
  •   Une variable int statique reste en mémoire pendant que le programme est en cours d'exécution. Une variable normale ou automatique est détruite lorsqu'un appel de fonction où la variable a été déclarée est terminé.
    Par exemple, nous pouvons utiliser static int pour compter le nombre de fois où une fonction est appelée, mais une variable automatique ne peut pas être utilisée à cette fin.
    Exemple 5 :
                                            #include < stdio.h>
    
                                            int tester(){
                                                static int cpt=0;
                                                cpt++;
                                                return cpt;
                                            }
                                            int main(void)
                                            {
                                                printf("%d \n", tester());
                                                printf("%d \n", tester());
                                                return 0;
                                            }
                                        
    1
    2
    avec une variable nomrmale
    Exemple 5 :
                                            #include < stdio.h>
    
                                            int tester(void){
                                                int cpt=0;
                                                cpt++;
                                                return cpt;
                                            }
                                            int main(void)
                                            {
                                                printf("%d \n", tester());
                                                printf("%d \n", tester());
                                                return 0;
                                            }
                                        
    1
    1
  •   Les variables statiques sont allouées à la mémoire dans le segment de données, pas au segment de pile.
  •   Les variables statiques (comme les variables globales) sont initialisées à 0 si elles ne sont pas initialisées explicitement.
  •   En C, les variables statiques ne peuvent être initialisées qu'à l'aide de littéraux constants. Par exemple, le programme suivant échoue lors de la compilation.
    Exemple 5 :
                                            #include < stdio.h>
    
                                            int initializer(void)
                                            {
                                                return 5; 
                                            }
                                            int main(void)
                                            {
                                                static int i = initializer(); 
                                                printf("%d \n", i);
                                                return 0;
                                            }
                                        
    prog.c:9:20: error: initializer element is not a compile-time constant
  •   Les variables globales statiques et les fonctions sont également possibles en C/C++. Celles-ci ont pour but de limiter la portée d'une variable ou d'une fonction à un fichier.
  •   Les variables statiques ne doivent pas être déclarées à l'intérieur de la structure. La raison en est que le compilateur C exige que tous les éléments de la structure soient placés ensemble; L'allocation de mémoire pour les membres de la structure doit être contigue.
    Il est possible de déclarer une structure à l'intérieur de la fonction (segment de pile) ou d'allouer de la mémoire de manière dynamique (segment de segment de mémoire) ou même globale (BSS ou segment de données). Quoi qu’il en soit, tous les membres de la structure doivent résider dans le même segment de mémoire, car la valeur de l’élément de structure est extraite en comptant le décalage de l’élément à partir de l’adresse de début de la structure. Séparer un seul membre du segment de données annule le rôle de la variable statique et il est possible d'avoir une structure entière statique.

Partager ce cours avec tes amis :

Rédigé par M. ESSADDOUKI

Learning a new programming language is an easy thing, but the most difficult thing is how to design efficient algorithms for real-world problems, so don't be a programmer, be a problems solver.

Cours Similaires :