黑马程序员技术交流社区

标题: 为什么查看数组元素的地址要加&,而查看数组的就不用? [打印本页]

作者: 埃林的奶酪    时间: 2015-5-18 18:27
标题: 为什么查看数组元素的地址要加&,而查看数组的就不用?
本帖最后由 埃林的奶酪 于 2015-5-18 18:57 编辑

比如入学视频里老师写的这段:
int main()
{
      char cs[5]={'a', 'A', 'D','e','f'};
      printf("%p\n",cs);
      for (int i = 0 ; i < 5; i++)
      {      printf("cs[%d]的地址是:%p\n", i , &cs[ i ]);
}
return 0;
}
第一个printf查看数组cs的地址,直接写cs就可以了;而第二个printf查看数组cs中每个元素的地址,元素前面要加&,为什么呢?不是%p的意思已经是输出地址了吗?

作者: 埃林的奶酪    时间: 2015-5-18 18:50
额,看懂了,原话“数组名的作用,查看元素地址”
数组名就可以查看元素地址了,所以不用加&,而数组元素不行;
当然数组名前面加个&也无妨,只是多此一举。:L
作者: mony    时间: 2015-5-18 19:15
数组名就是数组的地址指针
作者: 等风继续吹    时间: 2015-5-18 21:31
数组名就是数组的首元素的地址
作者: 李闯    时间: 2015-5-18 21:59
果断 来偷师




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2