1. 程式人生 > >對c語言中指標陣列和陣列指標的認識

對c語言中指標陣列和陣列指標的認識

1.陣列:一批具有同名的同屬性的資料就組成了一個數組。(“[ ]”也是陣列型別的一部分)

    由此可知:(1)陣列是一組有序資料的集合;(2)陣列中的每一個元素都屬於同一個資料型別。

 定義一維陣列的一般形式:型別符  陣列名【常量表達式】(陣列也是一種型別 )

[多維陣列也是一維陣列,只是其內部的元素也是陣列,如:二維陣列的內部元素都是一維陣列,三維陣列其內部元素型別都是二維陣列,以此類推,n維陣列其內部元素都是n-1維陣列]

2.指標:指標就是地址,一個變數的指標就是該變數的地址(即變數指標)。

3.指標變數:指標變數是變數,用來存放另一變數的地址

    (由此可知:指標是一個地址,而指標變數是存放地址的變數,我們通常所說的定義一個指標實質上是指定義了一個指標變數)

4.函式指標:就是函式的地址

5.函式指標陣列:是一個數組,其內部元素為函式的地址

6.容易混淆的點:

(1)指標和陣列沒有關係

(2)判斷指標陣列和陣列指標的方法:

由優先順序決定,例:

int *p[10] //指標陣列    ,因為[ ]的優先順序高於 * 的優先順序

(int *p)[10] //陣列指標 ,因為()的優先順序高於[ ] 的優先順序

(3)陣列在傳參時會發生降維,即陣列在進行傳參時會降維成指向其內部元素型別的指標

(4)陣列名只有在sizeof(陣列名)和“&(陣列名)”這兩種情況下表示整個陣列,其他情況下均表示陣列首元素的地址

(5)指標加1加的是其所指向型別的大小;

         例:a+1指的是加的整個陣列的長度

               a[0]+1指的是數組裡邊第二個元素

(6)一般情況下,兩個指標指向同一陣列/字串,通常代表兩指標之間的元素的個數。