陣列在兩種情況下代表陣列本身------即該段連續空間
1.對陣列名進行取位址
2.陣列名出現在sizeof之後
其餘陣列名表示首元素位址
比如:函式傳參----int*
int *p1=array;
int *p2=array+0;
int *p3=&array[0]; 等價
char p3=null; // 0 (void)0 數值上相等 含義不同
整形數字0 0號位址元素
int
main()
;int
*p1=
(int*)
(&array+1)
;int
*p2=
(int*)
(array+1)
;char
*p3=
null
;int a=p1[-2
]+*p2+
sizeof
(&array)
+aizeof
(*p3)
;printf
("%d\n"
,a);
return0;
}
p1[-2] 相當於 *(p1-2); 陣列指標和陣列首位址
下面 會輸出什麼 1 2 3 4 5 6 intmain intargc,char argv int ptr int a 1 printf d ptr 1 答案 4 解析 這邊主要考察的是陣列指標和陣列首位址的問題。a是陣列指標,a是陣列首位址。而指標的 1,增加的是1個指標型別的長度。比如 a是陣...
C C 陣列首元素的位址和陣列位址的區別
1 首先陣列首元素的位址和陣列位址的值是相等的。2 陣列首元素的位址和陣列位址是兩個不同的概念。3 舉例如下 includevoid main printf d n a printf d n a 1 與前面乙個相差4 printf d n a printf d n a 1 與前面乙個相差40 輸出結...
陣列名和陣列首位址
常規而言,陣列名就是陣列的首位址。int a 10 上面定義乙個int型陣列,陣列長度為十。a是乙個int 型常量指標,其儲存的值就是陣列的首位址。include int a 2 intmain 結果如下 a 0x804a014 a 0x804a014 a 1 0x804a018 a 1 0x804...