黑马程序员技术交流社区

标题: Int *p=&a[0]和Int *p=a一样吗 [打印本页]

作者: 冯大卫    时间: 2014-9-2 00:35
标题: Int *p=&a[0]和Int *p=a一样吗
如题Int *p=&a[0]和Int *p=a一样吗
作者: 陨石    时间: 2014-9-2 00:42
都是数组首地址
作者: 黑马黄武先    时间: 2014-9-2 04:30
结果是一样的
作者: x65396731    时间: 2014-9-2 10:38
Int *p=a; 会报错吧。 指针只能指向地址。
作者: 眼瞳╄渲染繁华    时间: 2014-9-2 13:43
Int *p=&a[0]和Int *p=a不一样,后者是错误的,指针变量不可以直接赋值我一个整型常量,因为我们不知道这块内存是哪块地址
作者: claud0623    时间: 2014-9-2 14:09
补充一下,楼主的意思是存在一个a[]数组,这里的a就相当于一个地址。因此int *p=a,是可以定义并初始化的。而&a[0]跟a是同一个地址,所以两个表达的意思都是一样的。
作者: ★彬★卍囧神    时间: 2014-9-2 19:22
是的....
作者: 王绍明    时间: 2014-9-2 20:20
Int*p=&a[0]和Int*p=a不一样,Int*p=a,这样写不对,前者是指数组a[]首个元素地址
作者: himym2005    时间: 2014-9-2 21:00
完全不一样!两码事,这个得仔细研究数组名和指针的区别
作者: 陨石    时间: 2014-9-2 22:59
看来楼主对a声明的隐藏导至大家对a的数据类型的认识有所不同,进而对答案各有各的看法,不过我个人认为,a的声明应该就是一个数组,既然拿来比较,没理由类型不一样才对。
作者: 超越自己    时间: 2014-9-2 23:20
应该是一样的啊!
作者: reinvent    时间: 2014-9-3 00:36
指针在声明时初始化的只能是地址,int *p = a;  a是数组首地址完全可以初始化p
作者: 小月格子猫    时间: 2014-9-4 21:40
x65396731 发表于 2014-9-2 10:38
Int *p=a; 会报错吧。 指针只能指向地址。

a 是数组啊,哥哥!
作者: ‍___________H    时间: 2014-9-6 15:36
如果a是数组那就一样,都是指向首个元素地址




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