數組名 和 &數組名

假設我們定義一個數組char a[16]; 那麼a與&a分別代表什麼呢?它們完全一樣嗎?

a其實代表的是數組中首元素的地址,即a[0]的地址&a代表的是整個數組的起始地址。我們做個測試就可以很容易知道。

我們分別測試a  a+1  &a   &a+1這四個值,它們分別爲:

a 0x0012fcc8
a+1 0x0012fcc9
&a 0x0012fcc8
&a+1 0x0012fcd8

a和&a的值雖然完全一樣,但是他們的含義是不同的。

 

我們再用sizeof 測試一下他們兩個:

sizeof a 16
sizeof &a 4

 第一個得到的是整個數組的大小,第二個得到的是地址的大小。這一點要注意。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章