博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数组名与数组名的地址:a 与 &a

Posted on 2011-07-23 10:19  天地玄黄  阅读(1118)  评论(1)    收藏  举报

      假设我们定义一个数组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

      第一个得到的是整个数组的大小,第二个得到的是地址的大小。这一点要注意。