陣列名和陣列首位址

2021-10-10 11:43:40 字數 694 閱讀 5290

常規而言,陣列名就是陣列的首位址

int a[10]

=;

上面定義乙個int型陣列,陣列長度為十。a是乙個int 型常量指標,其儲存的值就是陣列的首位址

#include

int a[2]

=;intmain()

結果如下:

a = 0x804a014

&a = 0x804a014

a + 1 = 0x804a018

&a + 1 = 0x804a01c

具體分析如下:

一、在c中,在幾乎所有使用陣列的表示式中,陣列名是個指標常量,其值也就是陣列第乙個元素的位址。 它的型別取決於陣列元素的型別: 如果它們是int型別,那麼陣列名的型別就是「指向int的常量指標「。

二、sizeof返回整個陣列的長度,而不是指向陣列的指標的長度

取乙個陣列名的位址所產生的是乙個指向陣列的指標,而不是乙個指向某個指標常量的指標。

&a後返回的指標便是指向

的指標,跟a(乙個指向a[0]的指標)在指標的型別上是有區別的。

陣列名和陣列名取位址

在c中,在幾乎所有使用陣列的表示式中,陣列名的值是個指標常量 也就是陣列第乙個元素的位址。它的型別取決於陣列元素的型別 如果它們是int型別,那麼陣列名的型別就是 指向int的常量指標 在以下兩種場合下,陣列名並不是用指標常量來表示,就是當陣列名作為sizeof操作符和單目操作符 的運算元時。siz...

陣列名和陣列名取位址

1 int a 10 2 int p a 3 int q 10 a 第二個為指向陣列的指標.a只是a 0 的位址,a 1就是a 1 的位址了,a是整個a 10 的首位址,是以整個陣列為角度來看,雖然它與a 0 的值相同,但是 a 1就已經增加了10個int型別的位元組的長度了.1 include 2...

陣列名和陣列名位址。

先不說啥,上 看 分析。是在vs2015下編譯的,debug 選的64 位。所以乙個指標占用 8個位元組。int main int argc,char argv int ca 6 printf n printf 主函式 n printf n printf 1.ca d n ca printf 2.c...