a和&a的区别
&a是整个数组的首地址,a是数组首元素的首地址,其值相同,但是意义不同。 数组a,a[i]与*a[i+1]都表示第i+1个元素的值。 哦哦,我们知道a是数组名,代表数组的首地址,a+1,就是数组的下一个元素的地址。
a = 1245028 a + 1 = 1245032 相差多少?呵呵,你懂的,a+1正好是下一个元素的地址吧。 我们再来看看&a 和 &a + 1吧 &a = 1245028 &a + 1 = 1245048 ,相差多少?聪明的你一定知道,是20。这时我们知道,&a + 1已经 已经到数组的最后一个元素的下一个地址。
到这里我们来总结一下,然后在看凌云若叶的面试题 int a[5],a是数组名,它其实就是一个符号,代表数组的首地址和&a[0]一个意思. &a的值也是数组的首地址,但是意义完全不一样。我们可以这样理解&a呢,是取整个数组的地址,那&a+1呢就是一次移动一个数组。 |
|