Les opérateurs de pointeur de C (& et *)
C ++ fournit deux opérateurs de pointeur, l'un est l'opérateur d'adresse & A est l'opérateur d'indirection *.
Un pointeur est une variable qui contient l'adresse d'une autre variable, vous pouvez mettre une variable qui contient l'adresse d'une autre variable est dite "point" à une autre variable. Les variables peuvent être tout type de données, y compris l'objet, ou pointeur vers la structure.
L'opérateur adresse &
Et est un opérateur unaire renvoie l'adresse de la mémoire de l'opérande. Par exemple, si var est une variable entière, alors & var est son adresse. L'opérateur avec les autres opérateurs unaires ont la même priorité, il est au moment de l'opération de l'ordre de droite à gauche.
Vous pouvez lire l'opérateur et comme«opérateur d'adresse» , qui signifie,& var lire comme "adresse var."
Indirection opérateur *
Le deuxième opérateur est l'opérateur indirection *, qui complète l'opérateur &. * Est un opérateur unaire, la valeur de retour de l'adresse de l'opérande variable spécifiée.
Considérons les exemples suivants pour comprendre l'utilisation de ces deux opérateurs.
#include <iostream> using namespace std; int main () { int var; int *ptr; int val; var = 3000; // 获取 var 的地址 ptr = &var; // 获取 ptr 的值 val = *ptr; cout << "Value of var :" << var << endl; cout << "Value of ptr :" << ptr << endl; cout << "Value of 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 :3000