【C语言经典面试题】&array与&array[0]有什么区别?

描述

【C语言经典面试题】&array与&array[0]有什么区别?

经典语法知识,有必要了解下!

1 问题描述

有一道C语言的经典面试题:

有一个整型数组array,那么&array与&array[0]有何区别呢?

2 示例代码

为此,我写了一段测试代码:

#include 
#include int main(int argc, const char *argv[])
{
int array[5];
​
printf("test1 = %p\\n", &array);
printf("test2 = %p\\n", &array[0]);
​
return 0;
}

测试结果如下:

C语言

3 总结

从结果来说,这两个地址的值是一致的。但是呢,从语法上说,两者还是有区别的:

  • &array :指的是array数组的首地址,表示整个数组的起始地址;
  • &array[0]:指的是array数组中第一个元素的地址;
  • 为何这两个值是相等呢?这是因为数组的存储空间本身就是线性的,第一个数组元素的起始地址就是数组的起始地址,所以也就有了上图的测试结果。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分