有關陣列首元素位址和陣列本身

2021-10-09 03:34:53 字數 670 閱讀 3368

陣列在兩種情況下代表陣列本身------即該段連續空間

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...