指標的本質
指標是c語言中乙個比較重要的概念。要理解指標,我們先理解以下變數的概念。變數就是c語言對計算機內部某一塊記憶體空間的命名。顯然這個變數名機器本身是不認識的,也是無意義的,但是變數名可以作為乙個標籤,幫助我們定義和使用這塊位址。舉個例子:
在計算機中,如果cpu想要儲存乙個資料,它會怎麼實現呢?看下圖:
假設該儲存器擁有10個位元組的記憶體單元,那麼它可以定址10個儲存空間。如果我要在記憶體位址為06的位址裡面儲存100這個數,那麼首先,計算機會通過位址匯流排鎖定60這個位址,然後將100這個數送至資料匯流排,最後通過控制匯流排將資料進行鎖存。**實現:
c語言:
int a=100
彙編:
mov
[06],100
也就是說a其實相當於乙個標籤,用來代替位址06,作用是便於我們記憶,使用,區分。而&a就相當於把這個標籤所對應的位址取出來(06)。
int
*p=&a
定義了乙個指標變數p,p的位址是10,p裡儲存的是位址06,這個06位址裡面儲存的資料時100。 關於指標的理解
先導知識 變數 變數名 就是乙個名字,它和乙個記憶體裡的一塊儲存空間對應,對變數修改相當於修改對應儲存空間裡的儲存的東西。儲存單元 儲存單元會有自己的位址,裡面也會有儲存的內容。指標含義 變數的位址即為該變數的指標,理解為位址 指標 指向了該變數,也就是通過位址 指標 可以找到該變數 如果乙個變數專...
個人關於指標的理解
指標是什麼?如何理解指標?因為指標是抽象的,所以這裡我把它擬物化,這樣解釋也許跟容易懂。指標的專業解釋是 指標是記憶體單元的編號。說明 以下的黑方框都代表乙個位元組 1 對於記憶體。我們一般認為記憶體的基本單位是位元組,記憶體空間由很多位元組組成的。記憶體可以儲存資料,所以我們把每個位元組當做是乙個...
關於指標的簡單理解
首先,指標和int float一樣是一種資料型別 它也要有乙個變數,稱為指標變數,但是這個指標變數裡存放的是另乙個變數的位址 比如 int a a bookname p整體稱為指標變數,a為指標變數名,為指標運算子,bookname為另乙個變數,這個變數的型別必須和 a的型別一致,為int型別 bo...