陣列名和陣列名的取址

2022-08-29 02:33:15 字數 425 閱讀 3452

關於陣列名和指標的區別:

推薦看這兩篇文章:

示例:

char a[3]=;

(輸出10進製位址)

輸出: a  為  2686777

&a 為 2686777

a是陣列名,編譯器處理時相當於陣列首元素的位址

&a是乙個指向陣列的指標,值為陣列的位址,等於陣列首元素的位址

輸出: *a   為 1

*(*&a) 為 1

*(&a) 為 2686777

*a是對陣列首元素取值

*(&a)是對陣列取值,取得陣列的值,陣列的值即陣列的位址,等於陣列首元素的位址

輸出: a+1 為  2686778

&a+1 為 2686780

a+1是乙個元素的記憶體大小,

&a+1增加的是整個陣列的記憶體大小

陣列名和陣列名取位址

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

陣列名 陣列名取址 指標

cout foo 0 endl 以上三個輸出均相同 cout foo 1 n int vv 2 3 cout vv endl cout vv 1 endl 步長是乙個維度的大小 cout vv 1 endl endl 步長為乙個元素的大小 int p 3 vv vv 0 int pp 2 3 vv ...