Différence entre déclaration de déclaration et déclaration d’affectation en C?

Je suis nouveau dans la programmation et j’essaie d’apprendre C. Je lis un livre dans lequel je lis ces déclarations sans pouvoir comprendre leur sens.

    Déclaration:

    int a; 

    Affectation:

     a = 3; 

    Déclaration et mission en une seule déclaration:

     int a = 3; 

    La déclaration indique: “Je vais utiliser une variable nommée” a “pour stocker une valeur entière.” L’affectation dit: “Mettez la valeur 3 dans la variable a .”

    (Comme @delnan le souligne, mon dernier exemple concerne l’ initialisation technique, puisque vous spécifiez la valeur par laquelle la variable commence, plutôt que de la modifier. L’initialisation a une syntaxe spéciale qui permet également de spécifier le contenu d’une structure ou d’un tableau.)

    En déclarant une variable, elle sera utilisée ultérieurement dans le code. Vous pouvez créer des variables pour contenir des nombres, des caractères, des chaînes (un tableau de caractères), etc.

    Vous pouvez déclarer une variable sans lui donner de valeur. Mais tant qu’une variable n’a pas de valeur, ce n’est pas très utile.

    Vous déclarez une variable comme celle-ci: char myChar; REMARQUE: cette variable n’est pas initialisée.

    Une fois qu’une variable est déclarée, vous pouvez lui atsortingbuer une valeur, telle que: myChar = 'a'; REMARQUE: l’atsortingbution d’une valeur à myChar initialise la variable.

    Pour faciliter les choses, si vous savez ce que devrait être une variable lorsque vous la déclarez, vous pouvez simplement la déclarer et lui atsortingbuer une valeur dans une instruction: char myChar = 'a'; Remarque: Cela déclare et initialise la variable.

    Ainsi, une fois que votre variable myChar a reçu une valeur, vous pouvez l’utiliser dans votre code ailleurs. Exemple:

     char myChar = 'a'; char myOtherChar = 'b'; printf("myChar: %c\nmyOtherChar: %c", myChar, myOtherChar); 

    Ceci affiche la valeur de myChar et myOtherChar sur stdout (la console) et ressemble à ceci:

     myChar: a myOtherChar: b 

    Si vous aviez déclaré char myChar; sans lui atsortingbuer une valeur, puis tenter d’imprimer myChar sur stdout, vous recevrez une erreur vous indiquant que myChar n’a pas été initialisé.