對指標的理解

2021-09-02 20:25:01 字數 782 閱讀 1311

在c語言中可以認為一切皆位址。

int a=10;

1 根據函式型別申請一塊記憶體,並將記憶體的名字命名為a

2 將10以二進位制補碼形式寫入記憶體//賦值

我們將這種通過變數名引用變數,由系統自動完成變數名和其儲存位址之間的轉換的方式,稱為變數的"直接引用"。

記憶體是線性,因為不同型別的變數占用不同大小的記憶體,所以我們必須要對記憶體進行編號。我們將記憶體的編號叫做記憶體的位址,當記憶體中裝的是另乙個變數的位址時,我們稱之為指標。即:指標是裝位址用的。

int a=10;

int *p=&a;

printf("%d",*p);

第三句:列印出空間p的內容

我們將這種例如通過變數b來間接引用變數a,間接讀寫變數a的值的方式叫做"間接引用"。 

注意:

第乙個*號:宣告變數p為乙個指標型別變數

第二個*號:解引用運算子,解釋p所儲存的位址,解釋的結果是在記憶體中找到p中的位址(如果變數名前沒有加取位址運算子「&」則變數代表的就是變數所代表的儲存空間裡面的內容)所以,此時*p代表的是指標p裡面的位址裡面的內容。

對指標的理解

指針對一部分初學者來說一直是乙個無法逾越的障礙,沒有指標的c語言就好像沒有左腿的短跑運動員。今天我來試試換一種方法來理解指標,希望能幫還在為指標掙扎的朋友們理清思路,高手略過即可。我們先認為記憶體是一家客棧 看起來這和老掉牙的大樓的比喻沒什麼區別,但是請你耐心看下去 同大部分的客棧一樣,這家客棧有天...

個人對指標的指標理解

每次一看到兩個 號,就頭疼,終於在一次看源 時,看了半天才弄明白其中含義,所以寫一寫對指標的指標的理解。int main 以乙個小例子來說明 我們將a指標稱為一級指標 因為a指標變數儲存的位址儲存的是乙個具體的數值或者字元,反正不再是位址值 b稱為二級指標,因為b是指向指標的指標,以此類推long ...

對指標的基礎理解

p和num的關係如上圖所示,p對應的記憶體空間裡儲存的是num對應記憶體空間的位址。如果進行p 操作,得到的是0x1004,因為int型變數是四個位元組,如果是num是char型,那p 的結果就是0x1001。這也是步長的概念,對指標加一,跳了多少位元組,步長就是多少。如果進行 p 操作,得到的就是...