C ++ puntatore a un puntatore (multilivello indirizzamento indiretto)
Il puntatore è un puntatore a una forma più stadi di indirizzamento indiretto, o è una catena puntatore. Tipicamente, un puntatore contiene l'indirizzo di una variabile. Quando definiamo un puntatore a un puntatore, il primo puntatore contiene l'indirizzo del secondo puntatore, il secondo puntatore contiene la posizione del valore effettivo.
Un puntatore a una variabile puntatore deve essere dichiarato come segue, vale a dire mettendo due asterischi davanti al nome della variabile. Ad esempio, il seguente dichiara un puntatore a un int puntatore puntatori:
int **var;
Quando un bersaglio è un puntatore ad un'altra puntatore indirettamente punti per ottenere questo valore richiede l'uso dell'operatore due asterischi, come illustrato nei seguenti esempi:
#include <iostream> using namespace std; int main () { int var; int *ptr; int **pptr; var = 3000; // 获取 var 的地址 ptr = &var; // 使用运算符 & 获取 ptr 的地址 pptr = &ptr; // 使用 pptr 获取值 cout << "Value of var :" << var << endl; cout << "Value available at *ptr :" << *ptr << endl; cout << "Value available at **pptr :" << **pptr << endl; return 0; }
Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:
Value of var = 3000 Value available at *ptr = 3000 Value available at **pptr = 3000