int (*p)[5]=&arr;這裡的&也可以不寫,因為陣列名本身就表示陣列的首位址
int *p = &arr;上面三種宣告方式都是合法且等價的int *p= arr;
int *p = &arr[0]
int a[5]
=;int*p=a;
//指向陣列元素的指標,用來訪問陣列內部的元素,單位長度是sizeof(int)
int(
*q)[5]
=&a;
//指向整個陣列的指標,用來訪問緊挨著的不同陣列,單位長度是sizeof(int)*len(arr)
printf
("%d : %d\n"
,p,q)
;//這兩個結果相同,都是a陣列的起始位址,也是a[0]的位址
printf
("%d : %d\n"
,p+1
,q+1);
//這兩個結果不同,第乙個實際值+4,第二個實際值+20
總結:指向陣列的指標的單位長度是陣列的長度,指向陣列內部元素的指標
指標陣列和指向陣列的指標
分析一下三個宣告 1 cat familyone 500 familyone 是乙個500個cat物件組成的陣列 2 cat familytwo 500 familytwo是乙個500個指向的cat的指標組成的陣列 指標陣列 3 cat familythree new cat 500 familyt...
指標陣列和指向指標的指標
今天終於弄明白了,指標陣列,和指向指標的指標的區別。1 include 2 include 3 void main 4 11 for i 0 i 3 i 12 15 一 指標概念 當我們程式如下申明變數 short int i char a short int pi 程式會在記憶體某位址空間上為各變...
C和指標之指標陣列和指向陣列的指標
定義乙個指標陣列,該陣列中每個元素是乙個指標,每個指標指向 就需要程式中後續再定義 int p 10 定義乙個陣列指標,該指標指向含10個元素的一維陣列 陣列中每個元素是int型 int p 10 我們知道二維陣列名是指向第乙個元素的指標,比如int a3 4 這裡a就是指向乙個包含4個元素陣列的指...