Déclarer un pointeur en C ++

UN carboniser variable dans C ++ est conçu pour contenir un caractère ASCII, un int un nombre entier, et un double un nombre à virgule flottante. De même, une variable de pointeur est conçu pour contenir une adresse mémoire. Vous déclarer une variable de pointeur par l'addition d'un astérisque (*) à la fin du type de l'objet que le pointeur à, comme dans l'exemple suivant:

char * pChar - // pointeur vers une characterint * pInt- // pointeur vers un int

Une variable de pointeur qui n'a pas été autrement initialisé contient une valeur inconnue. Utilisation de l'esperluette () Opérateur, vous pouvez initialiser une variable pointeur avec l'adresse d'une variable du même type:

omble cSomeChar = 'A'-char * pChar-pChar = cSomeChar-

Dans cet extrait, la variable cSomeChar a une certaine adresse. Pour la commodité du raisonnement, dire que C ++ lui a assigné l'adresse 0x1000. (C ++ également initialisé cet endroit avec le caractère 'un'.) La variable pChar dispose également d'un emplacement de sa propre, peut-être 0x1004. La valeur de l'expression cSomeChar est 0x1000, et son type est char * (lire “ pointeur carboniser”).




Ainsi, la mission sur la troisième ligne de l'exemple extrait stocke la valeur 0x1000 dans la variable pChar.

image0.jpg

Prenez une minute pour vraiment comprendre la relation entre la figure et les trois lignes de code C ++ dans l'extrait. La première déclaration dit, “ sortir et de trouver un emplacement 1-octet en mémoire, attribuez-lui le nom cSomeChar, et l'initialiser à 'un'.” Dans cet exemple, C ++ choisi l'emplacement 0x1000.

La ligne suivante dit, “ sortir et de trouver un endroit assez grand pour contenir l'adresse d'un carboniser variable et lui attribuer le nom pChar.” Dans cet exemple, C ++ assigné pChar à l'emplacement 0x1004.

La troisième ligne dit, “ attribuer l'adresse de cSomeChar (0x1000) à la variable pChar.” La figure représente l'état du programme après ces trois états.

“ donc ce n ° 148?; tu dis. Voici la partie vraiment cool, comme le montre l'expression suivante:

* pChar = 'B'-

Cette ligne dit, “ stocker une 'b' au carboniser emplacement pointé par pChar.” Ceci est démontré dans la figure suivante. Pour exécuter cette expression, C ++ récupère d'abord la valeur stockée dans pChar (ce serait 0x1000). Il stocke alors le caractère 'b' à cet endroit.

image1.jpg

La * lorsqu'il est utilisé comme un moyen d'opérateur binaire “ multiplient ” - lorsqu'il est utilisé comme un opérateur unaire, * moyens “ trouver la chose pointé par ”. De même a une signification comme un opérateur binaire, mais comme un opérateur unaire, cela signifie “ prendre l'adresse du ”.

Donc ce qui est si excitant à propos de cela? Après tout, vous pouvez obtenir le même effet en attribuant simplement une 'b' à cSomeChar directement:

cSomeChar = 'B'-

Pourquoi passer par l'étape intermédiaire de récupérer son adresse dans la mémoire? Parce qu'il ya plusieurs problèmes qui peuvent être résolus seulement avec des pointeurs.


» » » » Déclarer un pointeur en C ++