C語言 指標的幾種形式二

2021-09-22 08:47:25 字數 1098 閱讀 5712

一、const指標

1、const int* p和int const* p:兩者意義是相同的。指向的內容是唯讀資料,不可以q改變;但是指向的位址可以改變。

2、int* const p:必須先對指標初始化,而且指向的位址是唯讀的,不可以再被改變;但是指向的內容可以改變。

3、const int* const p:既不可以改變指標指向的位址,也不可以改變指標指向的內容。

二、指標陣列:元素型別全是指標

型別名稱*陣列名[陣列長度]

例如:char* pc[10]:字元指標陣列,常用來可以表示乙個字串

三、陣列指標:指標指向陣列名

型別名稱(*指標名)[陣列長度]

例如:int a[5] = ;

int (*temp)[5] = &a; //temp指向的是整個陣列

注意:1、定義指標時()不能丟掉,因為優先順序比*高,若丟掉,就會變成指標陣列。例如:int *temp[4]//陣列4個元素都是int*。

2、陣列長度、元素型別必須與指標定義時給出的長度、型別相同。

四、函式指標

資料型別(*指標變數名稱)(形式引數列表)

本質:函式放在**區,函式指標指向**區,通過函式指標可以訪問**區中的內容。括號()不可以省。。。

例如:float (*p)(float a,float y):float型別指標函式

float* p(float x,float y):函式p返回值為float指標型別

五、總結陣列與指標的區別:

1、指標的本質是乙個與位址相關的復合型別,它的值是資料存放的位置(位址);陣列的本質則是一系列的變數。

2、陣列名對應著(而不是指向)一塊記憶體,其位址與容量在生命期內保持不變,只有陣列的內容可以改變。指標可以隨時指向任意型別的記憶體塊,它的特徵是"可變",所以我們常用指標來操作動態記憶體。

3、當陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標。 

因為第三條,當把陣列名作為函式的形參進行傳遞時,該效果等同於傳遞乙個同型別的指標。直接在程式當中呼叫 函式名(陣列名)即可。

程式猿神奇的手,每時每刻,這雙手都都在改變著世界的互動方式!

分類:

c

C語言 指標的幾種形式二

一 const指標 1 const int p和int const p 兩者意義是相同的。指向的內容是唯讀資料,不可以q改變 但是指向的位址可以改變。2 int const p 必須先對指標初始化,而且指向的位址是唯讀的,不可以再被改變 但是指向的內容可以改變。3 const int const p...

C語言中指標和陣列的幾種訪問形式

一 關於這幾種訪問形式,理論不多說,從例子看 1 陣列名 includeint main for i 0 i 5 i 2 指標變數名 includeint main pa a 注意陣列名直接賦值給指標 for i 0 i 5 i 從上面的兩個例子 四個結論 我們知道結果都是01234。即通過陣列名 ...

C語言定義陣列的幾種形式

陣列時常都可以用到,以前用在c語言裡用,後來在c 裡也用,現在回過頭來學習c語言,總結一下c語言定義陣列的幾種形式 以一維陣列為例 int arr 10 int arr int arr 10 int arr new int 10 前面三種常常都可以用到,但使用第四種時需要注意。在.c檔案裡使用這種形...