指標的本質

2022-08-18 10:18:12 字數 832 閱讀 2426

**於 

c與機器聯絡緊密,抽象程度不是太高,所以機器層面的位址也拿過來了,改名叫指標。

遇到指標,要讀成「位址變數」,其實指標就是乙個存放整數(位址就是乙個整數)的變數而已,多少級都是如此。

一、定義乙個指標 int * p; 與訪問指標指向的變數 * p;

二、語句int *p;有三個意思:

1.p是乙個變數,用來存放位址

2. 需要幾次定址才能找到最終的那個變數(這與有幾顆*有關)。

3. 最終指向的那個變數是什麼型別的(這裡就是 int )。

這裡第乙個意思最重要,看到乙個定義要首先想到這一點。其他兩個基本上是編譯器檢查時需要的資訊,在型別轉換,賦值時稍微注意下就ok了。

三、當看到:

int *p;

char ****p;

float ************************************p;

當看到:

**p;

*p;****************p;

int x=0;

int *p=&x;

int **p2=&p;

五、char ***cc;

int *******ii;

另外, 陣列為空和指標為空,這兩個是很容易區分的。

2、指標為空(null):該指標變數不指向任何空間。

3、空字串(內容為空的字串)的表示形式:

const int length = 10;

char str[length] = "";

指標的本質分析

變數回顧 程式中的變數只是一段儲存空間的別名,那麼是不是必須通過這個別名才能使用這段儲存空間?通過乙個指標訪問它所指向的位址的過程稱為間接訪問或借引用指標。這個用於指向間接訪問的操作符是單目操作符 1.在指標宣告時,號表示所宣告的變數為指標。2.在指標使用時,號表示取指標所指向的記憶體空間中的值。號...

指標本質論

指標本質論 1.指標是什麼?和一般變數有什麼區別?指標就是位址,和一般變數沒有本質區別,僅僅是它有自己的規則。int a 100 int p a printf d n a 100 printf p n p 0xbfa47858 a是乙個變數名,型別是int,值是100,a有自己的位址 a p是乙個變...

24 指標的本質

變數代表一段儲存空間的別名,但並不是只能通過變數才能訪問一段記憶體了,指標也可以 1 號的意義 p i p i 為什麼指標的大小占用為4個位元組?因為如果系統是32位,位址定址範圍為4個位元組,所有的32位位址值都可以用4個位元組表示,所以32位系統指標的大小都為4個位元組 2 傳值呼叫與傳址呼叫 ...