Étape 3: Déclarer un pointeur
L’exemple de la première section était un regard très basique sur comment déclarer un pointeur.Une variable de pointeur qui n’a pas été initialisée dans le cas contraire contient une valeur inconnue. Vous pouvez initialiser une variable de pointeur avec une adresse d’une variable du même type à l’aide de l’opérateur perluète (&).
char cSomeChar = « a » ;
char * pChar ;
pChar = & someChar ;
Dans cet extrait de code, la variable cSomeChar a quelque adresse. Pour du raisonnement, supposons que C++ il a attribué l’adresse 0 x 1000. (C++ initialisé également cet endroit avec le caractère « a ».) Le variable pChar a aussi un emplacement propre, peut-être 0x1004. La valeur de l’expression & someChar est 0 x 1000, son type est char * (lire « pointeur vers caractère »). Si l’affectation sur la troisième ligne de l’exemple de l’extrait de code stocke la valeur 0 x 1000 dans la variable pChar.
Prenez une minute pour comprendre vraiment les trois lignes de code C++. La première déclaration dit: « sors et trouver un emplacement de 1 octet, attribuez-lui le nom cSomeChar et initialisez-la à « a ». » Dans cet exemple, C++ a choisi l’emplacement 0 x 1000.
La troisième ligne dit: « assigner l’adresse de cSomeChar (0 x 1000) à la variable pChar. »
« So what? » dites-vous. Voici la partie vraiment cool a démontré dans l’expression suivante :
* pChar = « b » ;
Cette ligne a dit: "magasin d’a 'b' à l’emplacement de char pointé par pChar." Pour exécuter l’expression, C++ commence par extraire la valeur stockée dans pChar (c’est 0 x 1000). Il stocke ensuite le caractère « b » à cet endroit.
Le * lorsqu’il est utilisé comme un opérateur binaire signifie « multiplier » ; lorsqu’il est utilisé comme un opérateur unaire, * signifie « trouvez la chose pointée par... ». De même, & a une signification comme un opérateur binaire (qui je ne discute pas), mais comme un opérateur unaire, il signifie « prendre l’adresse de... ».