指標與陣列的區別

2021-07-25 10:40:40 字數 682 閱讀 5224

函式與陣列的區別從以下幾個方面區別:

1.空間分配

指標是動態分配空間,通過malloc在堆上分配所需要的空間,分配的空間不一定連續,在使用完之後需要呼叫free()來釋放分配空間。而陣列是靜態分配空間,在全域性變數區或者棧上分配空間,分配的空間是連續的,區域性變數在生命週期結束後自動釋放,全域性變數在程式結束完自動釋放。

2.訪問效率

指標是通過位址間接訪問,而陣列是直接訪問數值。因此指標的訪問效率低,陣列的訪問效率高。

3.安全性

指標使用不當會造成記憶體洩漏,陣列使用不當會造成陣列越界。

4.函式引數

陣列要用相應的指標當形參,而指標要用指標的指標來當形參。

5.位元組大小

指標的位元組大小是固定的,由作業系統決定。陣列的位元組大小由陣列大小和陣列指向的型別共同來決定。

6.識別符號

指標名是變數,陣列名是指標常量。所以指標p可以進行p++,而陣列名不可以用於a++。

7.對應的記憶體空間

指標儲存的是位址,陣列儲存的是數值。

相比指標,好像陣列更具優勢,但為什麼要定義和使用指標了?

1、指標是動態分配空間,而陣列是靜態分配,因此使用指標可以提高空間分配的利用率。

2、c語言優勢之一就是可以直接訪問硬體,指標能夠直接訪問位址,因此指標能夠訪問硬體。

3、指標相對陣列訪問更加靈活。

陣列指標與指標陣列的區別

一 陣列指標 也稱行指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,...

陣列指標與指標陣列的區別

一 陣列指標 也稱行指標 定義int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,指...

陣列指標與指標陣列的區別

陣列指標 也稱行指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,指向...