淺談指針

淺談c與c++中的指針藝術(一)

有句話說得好,學會c語言走遍全天下,作爲一個癡迷操作系統的os謎,最近很對指針感興趣,所以想記錄下關於學習指針理解的點點滴滴。

在c語言中的指針,其實完全用另一個名字來理解,就是地址。
在聲明一個指針時候
我們可以這樣聲明
int i=5;
int *p=&i;
我們的編譯器是如何給變量i在棧中分配一個空的內存空間
假設我們的這個內存單元名稱叫做i,地址是0x12ff7c 而這個內存單元(4個字節)中存儲的數據爲5

編譯器還會在棧中
找到一塊空的內存單元 命名爲p  ,而這塊內存單元的地址假設爲0x12ff78
這就是我們的指針p,這塊內存單元中存放的就是i這塊內存單元的地址也就是0x12ff7c

我們要分清
&p,p,&i,*p這幾個概念
&當然就是取地址 *便是和&相反的操作
我們在編程時候會寫
printf("%d",p); 編譯器會識別p的地址,因爲編譯器存儲了p這個內存單元的地址0x12ff78,我們會從0x12ff78開始尋址,因爲輸出int類型,所以會從0x12ff78尋址四個字節,取出其中的內容。也就是返回0x12ff7c






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章