English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C++ fornisce due operatori di puntatore, uno è l'operatore di indirizzo & e l'altro è l'operatore di indirizzamento indiretto *.
Un puntatore è una variabile che contiene l'indirizzo di un'altra variabile, puoi dire che una variabile che contiene l'indirizzo di un'altra variabile è "che punta" a un'altra variabile. La variabile può essere di qualsiasi tipo di dati, inclusi gli oggetti, le strutture o i puntatori.
L'operatore & è un operatore unario che restituisce l'indirizzo di memoria dell'operando. Ad esempio, se var è una variabile di tipo int, allora &var è il suo indirizzo. L'operatore ha la stessa priorità degli altri operatori unari e viene eseguito dall'estrema destra verso sinistra.
Puoi leggere l'operatore & comeoperatore di indirizzo, il che significa che,&var si legge "indirizzo di var".
Il secondo operatore è l'operatore di indirizzamento indiretto *, è un supplemento dell'operatore &. * è un operatore unario che restituisce il valore della variabile specificata dall'operando.
Ecco un esempio per comprendere l'uso di questi operatori.
#include <iostream> using namespace std; int main () { int var; int *ptr; int val; var = 3000; // 获取 var 的地址 ptr = &var; // 获取 ptr 的值 val = *ptr; cout << "var的值 :" << var << endl; cout << "ptr的值 :" << ptr << endl; cout << "val的值 :" << val << endl; return 0; }
当上面的代码被编译和执行时,它会产生下列结果:
var的值 :3000 ptr的值 :0xbff64494 val的值 :3000