在 C 語言,指標跟陣列是非常接近的東西,在許多情況下幾乎可以視為相等,但兩者是不一樣的,有著本質上的差別。
一般指標屬於指標變數,而陣列名稱則是指標常數。

陣列:陣列是將同一種類的資料型態放置同一個記憶體區塊內,陣列名稱的內容是不變的,所以陣列的名稱是一個指標常數。

指標:指標可以隨時改變所指之對向,彈性地處理變數,呼叫不同的函數,使得函數在傳遞陣列時更有效率。

所以兩者差別僅在於陣列一開始就必須指定有多少個陣列元素,而指標則不必,可於需要時再行設定即可。

不過C語言中陣列和指標一向都可以互相的轉換,只要宣告定義了之後,它們在記憶體裡就會佔了一個位置。


指標可以更改指向別處,但陣列不能,陣列的名稱永遠是指向它所屬的物件。
指標最大的功能就是能夠將變數所在的記憶體位址與其內容分開處理。

Posted by chunju at 痞客邦 PIXNET Comments(0) Trackback(0) Hits(52)