C ++ pointer ke pointer (multilevel tidak langsung menangani)
pointer adalah pointer ke bentuk multi-tahap tidak langsung menangani, atau rantai pointer. Biasanya, pointer berisi alamat dari variabel. Ketika kita mendefinisikan pointer ke pointer, pointer pertama berisi alamat pointer kedua, pointer kedua berisi lokasi dari nilai yang sebenarnya.
Sebuah pointer ke variabel pointer harus dinyatakan sebagai berikut, yaitu menempatkan dua tanda bintang di depan nama variabel. Misalnya, berikut ini menyatakan pointer ke pointer int pointer:
int **var;
Ketika target adalah pointer ke pointer lain secara tidak langsung poin untuk mengakses nilai ini memerlukan penggunaan operator dua tanda bintang, seperti yang ditunjukkan dalam contoh berikut:
#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; }
Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:
Value of var = 3000 Value available at *ptr = 3000 Value available at **pptr = 3000