黑马程序员技术交流社区
标题:
困惑,困惑,数组名arr和&arr的区别?
[打印本页]
作者:
cherrycool
时间:
2015-11-25 23:38
标题:
困惑,困惑,数组名arr和&arr的区别?
一程序员朋友跟我说,在C中数组和指针是等价的。怎么理解?数组的引用会演变为指针,那么在数组引用时,数组名arr和&arr有什么区别?
作者:
IPswhatb“is”
时间:
2015-11-27 00:18
arr可等价于arr
作者:
IPswhatb“is”
时间:
2015-11-27 00:20
arr==&arr[0],但是不能等价于&arr。arr是数组名,&arr表示的数整个数组的地址
作者:
alen2015
时间:
2015-11-27 01:00
指针的概念:内存单元的编号也叫做指针。既然根据内存单元的编号或地址就可以找到 所需的内存单元,所以通畅也把这个地址称为指针。
总结:对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的
数组名arr不代表整个数组,只代表数组首元素的地址。
数组的引用(访问数组的每个元素):一个变量有地址,一个数组包含若干元素,每个数组元素都有相应的地址 指针变量可以指向数组元素(把某一元素的地址放到一个指针变量中) 所谓数组元素的指针就是数组元素的地址 可以用一个指针变量指向一个数组元素,所以可以用指针来访问数组.
一维数组: arr是数组名,是一个常量,它代表一个数组的首地址 对于数组名没有&arr的写法,应该是:arr=&arr[0]都代表该数组的首地址
希望以上的解答能帮到你,谢谢~~有疑问可以追问,我会定期回答~~~
作者:
lujia1010
时间:
2015-11-27 09:30
楼上解释的很清晰
作者:
杨立鹏
时间:
2015-11-27 10:22
alen2015 发表于 2015-11-27 01:00
指针的概念:内存单元的编号也叫做指针。既然根据内存单元的编号或地址就可以找到 所需的内存单元,所以通畅 ...
解释的很清晰
作者:
qinxiaodong
时间:
2015-11-27 16:15
指针大问题
作者:
cc_2436
时间:
2015-11-27 22:30
数组名arr表示数组第一个元素的地址 &arr表示整个数组的地址 当指向整个数组的指针+1的时候在内存中跨越的是整个数组
作者:
kings
时间:
2015-11-27 22:50
怎么觉得楼主跟我是一个班的,老师的arr【i】都搬过来换分了?
作者:
能不能行
时间:
2015-11-27 22:53
学习学习
作者:
乌合屁民
时间:
2015-11-27 23:07
怎么得积分啊!
作者:
IPswhatb“is”
时间:
2015-11-28 11:45
这是一个很好理解我的问题,,代码用几遍就明白了,,我起出也不明白的,是在打代码当中顿悟的
作者:
wwpower
时间:
2015-11-28 12:35
怎么区别,学习一下。
作者:
杨奉泊
时间:
2015-11-28 19:10
我也弄不太明白这一块尤其是arr1 arr2 折是什么意思啊
作者:
xiaoniu706
时间:
2015-11-28 19:41
hehe heheh hehe
作者:
IPswhatb“is”
时间:
2015-11-28 20:47
数组怎么可能是指针呢,,虽然指针可以操作数组,但是你自己去整理数组的定义和特点,自己比较一下,数组和指针的功能,你就明白了。arr==arr[0],而&arr虽然也是第一个元素的地址,但是不能当成数组第一个元素来用,&arr代表的是整个数组的指针
作者:
马尔代夫的日出
时间:
2015-11-28 22:04
不错...............
作者:
黑马。。肖锋
时间:
2015-11-29 01:08
两者之间确实有很多共同的地方,但是还是有区别的,不能等价,但是你如果不熟要搞科研的话,知道数组等于指针还是能解决一大部分问题的,但是不能深究!
作者:
cherrycool
时间:
2015-11-29 11:18
alen2015 发表于 2015-11-27 01:00
指针的概念:内存单元的编号也叫做指针。既然根据内存单元的编号或地址就可以找到 所需的内存单元,所以通畅 ...
谢谢大神指教!很详细
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2