C++ 指向指針的指針(多級(jí)間接尋址)
C++ 指向指針的指針(多級(jí)間接尋址)
指向指針的指針是一種多級(jí)間接尋址的形式,或者說(shuō)是一個(gè)指針鏈。通常,一個(gè)指針包含一個(gè)變量的地址。當(dāng)我們定義一個(gè)指向指針的指針時(shí),第一個(gè)指針包含了第二個(gè)指針的地址,第二個(gè)指針指向包含實(shí)際值的位置。

一個(gè)指向指針的指針變量必須如下聲明,即在變量名前放置兩個(gè)星號(hào)。例如,下面聲明了一個(gè)指向 int 類(lèi)型指針的指針:
int **var;
當(dāng)一個(gè)目標(biāo)值被一個(gè)指針間接指向到另一個(gè)指針時(shí),訪問(wèn)這個(gè)值需要使用兩個(gè)星號(hào)運(yùn)算符,如下面實(shí)例所示:
#include <iostream> using namespace std; int main () { int var; int *ptr; int **pptr; var = 3000; // 獲取 var 的地址 ptr = &var; // 使用運(yùn)算符 & 獲取 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; }
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
Value of var = 3000 Value available at *ptr = 3000 Value available at **pptr = 3000
相關(guān)文章
- C++ 數(shù)字
- C++ 基本的輸入輸出
- C++ 繼承
- C++ 動(dòng)態(tài)內(nèi)存
- C++ 標(biāo)準(zhǔn)庫(kù)
- C語(yǔ)言 標(biāo)準(zhǔn)庫(kù) <time.h>
- C語(yǔ)言 標(biāo)準(zhǔn)庫(kù) <stdio.h>
- C# 數(shù)據(jù)類(lèi)型
- C# 類(lèi)型轉(zhuǎn)換
- C# 循環(huán)語(yǔ)句
- C# 結(jié)構(gòu)體 Struct
- C# 繼承
- C# 泛型 Generic
- C++ 友元函數(shù)
- C++ this 指針
- C語(yǔ)言 庫(kù)函數(shù) clock()
- C語(yǔ)言 庫(kù)函數(shù) strftime()
- C# 隊(duì)列(Queue)
- C# 傳遞數(shù)組給函數(shù)
- C# switch 語(yǔ)句