C++ Opérateurs de pointeur (& et *)
C++ fournit deux opérateurs de pointeur : l’opérateur d’adresse & et l’opérateur d’indirection *.
Un pointeur est une variable qui contient l’adresse d’une autre variable. On peut dire qu’une variable qui contient l’adresse d’une autre variable "pointe vers" cette autre variable. La variable peut être de n’importe quel type de données, y compris des objets, des structures ou des pointeurs.
Opérateur d’adresse &
& est un opérateur unaire qui renvoie l’adresse mémoire de son opérande. Par exemple, si var est une variable entière, alors &var est son adresse. Cet opérateur a la même priorité que les autres opérateurs unaires, et il est évalué de droite à gauche.
Vous pouvez lire l’opérateur & commeOpérateur d’adresse, cela signifie que,&varse lit comme "l’adresse de var".
Opérateur d'indirection *
Le second opérateur est l'opérateur d'indirection *, qui est le complément de l'opérateur &. * est un opérateur unaire qui renvoie la valeur de la variable à l'adresse spécifiée par son opérande.
Veuillez voir l'exemple suivant pour comprendre l'utilisation de ces deux opérateurs.
Exemple
using namespace std;
int main ()
{
int var;
int *ptr;
int val;
var = 3000;
// obtenir l'adresse de var
ptr = &var;
// Obtenir la valeur de ptr
val = *ptr;
cout << "Valeur de var :" << var << endl;
cout << "Valeur de ptr :" << ptr << endl;
cout << "Valeur de val :" << val << endl;
return 0;
}
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Value of var :3000 Value of ptr :0xbff64494 Value of val :3000autres extensions