對c語言中指標陣列和陣列指標的認識
阿新 • • 發佈:2018-12-04
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)一般情況下,兩個指標指向同一陣列/字串,通常代表兩指標之間的元素的個數。