2016-02-05 226 views
-5

我經常看到C++程序帶有一個指向變量的指針,即** i。這是什麼意思,爲什麼它被使用。不能,我們只使用一個指針而不是那個。單指針和指針指針之間的區別是什麼?請解釋每一步。謝謝。指針指針是什麼意思?

+0

每一步是什麼?而指針指針只是一個普通的指針。它的一個指針恰好指向指向一塊內存的東西 – DTSCode

+1

一個說「襪子在牀下」的郵件和一個說「襪子的方向在郵件上的郵件之間有什麼區別」冰箱」? –

+0

想象一下數組。數組是一行指向一堆項目的指針。現在想象一個指向數組的指針 - 這是一個指向指針的指針。 –

回答

1

變量佔用一些空間來存儲。這個空間來自內存。假設您的堆棧(內存)開始於0x12 34 56 78和你有一個整數a值爲4

int a = 4; 

你的記憶可能是這樣的:

0x12 34 56 78: 0x00 00 00 04 (a) 

現在,假設你也有一個指針a

int a = 4; 
int* p = &a; 

你的記憶將如下所示:

0x12 34 56 78: 0x00 00 00 04 (a) 
0x12 34 56 7c: 0x12 34 56 78 (p) 

現在,假設你有一個指針p:然後

int a = 4; 
int* p = &a; 
int** q = &p; 

你的記憶將是這樣的:

0x12 34 56 78: 0x00 00 00 04 (a) 
0x12 34 56 7c: 0x12 34 56 78 (p) 
0x12 34 56 80: 0x12 34 56 7c (q) 

您可以從q通過以下地址得到pa。指針是一個間接的層:它們指定某物的位置,而不是它是什麼。

相關問題