C語言高階 第26課 指標的本質分析

2021-08-20 03:46:07 字數 836 閱讀 5254

程式中的變數只是一段儲存空間的別名,那麼是不是必須通過這個別名才能訪問這段儲存空間?

*號的意義:

在指標宣告時,*號表示所表明的變數為指標;

在指標使用時,*號表示取指標所指向的記憶體空間中的值。

*號類似於一把鑰匙,通過這把鑰匙可以開啟記憶體,讀取記憶體中的值。

int i=0; int j=0;

int* p=&i; //指標宣告

j=*p; //取值

劃重點:變數p儲存著變數i的記憶體位址,即   p <---> &i,    *p <---> i

32位系統中,指標為4個位元組大小。

傳值呼叫與傳址呼叫:

指標是變數,因此可以宣告指標引數;

當乙個函式體內部需要改變實參的值,則需要使用指標引數;

函式呼叫時實參值將複製到形參;

指標適用於複雜資料型別作為引數的函式中。

對於const和指標的交叉考察,只需關注const修飾的是什麼就行:

修飾的是指標,那麼指標是不能改變的(p3);

修飾的是資料,那麼指標指向的資料是不能改變的(p1、p2)。

int main()

小結:

指標是c語言中一種特別的變數;

指標所儲存的值是記憶體的位址;

可以通過指標修改記憶體中的任意位址內容。

c語言高階 多維陣列本質及指標陣列的應用分析

一維陣列int a 10 在做函式引數時會退化為指標int a,但是二維指標做函式引數時卻不能寫成二級指標,那麼二維陣列的本質到底是什麼,可以通過 來驗證。int a 3 5 i 0,j 0 定義乙個3 5的二維陣列 int tmp 1 for i 0 i 3 i printf a d a 1 d ...

C語言高階 第34課 多維陣列和多維指標(難點)

指向指標的指標 指標的本質是變數 指標會占用一定的記憶體空間 可以定義指標的指標來儲存指標變數的位址值。int main 為什麼需要指向指標的指標?指標在本質上也是變數 對於指標也同樣存在傳值呼叫和傳址呼叫。include include include int reset char p,int s...

C 第5課 引用的本質分析

本文學習自 狄泰軟體學院 唐佐林老師的 c 課程 實驗1 可以使用變數和常量初始化const引用變數,const引用讓變數擁有唯讀屬性 注意1 不可以直接用字面常量初始化 引用變數,但是可以初始化 const引用變數 注意2 const引用讓變數擁有唯讀屬性,如 int a 4 const int ...