| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 536 人关注过本帖
标题:关于数组与指针的小问题
只看楼主 加入收藏
cpointer
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-3-16
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
关于数组与指针的小问题
如果定义:
float a[10],x;
a=&x;//为什么是非法的?数组名不是指针吗?为什么*a=x才是正确?
2015-03-16 18:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
千年老話題,解釋到厭煩了。

授人以渔,不授人以鱼。
2015-03-16 18:57
afanihao
Rank: 2
等 级:论坛游民
威 望:1
帖 子:62
专家分:99
注 册:2015-3-13
收藏
得分:5 
这就是问题。

以下是引用TonyDeng在2015-3-16 18:57:52的发言:

千年老話題,解釋到厭煩了。
2015-03-16 19:46
uswood
Rank: 2
等 级:论坛游民
帖 子:34
专家分:16
注 册:2014-3-29
收藏
得分:5 
因为单纯的a的值是地址(数组的名其实也是一种指针),而x是浮点型变量,把一个数字给指针变量当然不可以啊,你如果要指向的话应该*a=&x 这就是把x的地址给了指针a。 意思是将指针a指向x的地址
2015-03-16 20:51
cpointer
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-3-16
收藏
得分:0 
回复 4楼 uswood
谢谢你的回答,但我觉得你好像没看清我问的,我没说让给指针赋x的值,而是:a=&x。地址赋给指针没错啊~~
2015-03-16 21:13
cpointer
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-3-16
收藏
得分:0 
回复 2楼 TonyDeng
是因为你不能用简洁准确有说服力的语言使人明白所以才厌烦吧( ^_^ )( ^_^ )
2015-03-16 21:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用cpointer在2015-3-16 21:17:46的发言:

是因为你不能用简洁准确有说服力的语言使人明白所以才厌烦吧( ^_^ )( ^_^ )

是吧,所以我舉得不配回答你的問題,你等別人給你簡潔準確有説服力的語言吧。

授人以渔,不授人以鱼。
2015-03-16 21:21
uswood
Rank: 2
等 级:论坛游民
帖 子:34
专家分:16
注 册:2014-3-29
收藏
得分:0 
回复 5楼 cpointer
确实看错了哈哈。
因为数组名虽然是指针类,但它是常量指针啊,a这个常量指针代表数组a[0]的地址,所以不能变,你说的*a可以也许是把首地址覆盖了,具体的可以去上机测试下,我也刚学,只知道这些了
2015-03-16 21:33
uswood
Rank: 2
等 级:论坛游民
帖 子:34
专家分:16
注 册:2014-3-29
收藏
得分:0 
想清楚了 ,第二个*a是已经指向过后的内容, 比如z=3,*a=&z是取z地址,指向a,此时a的内容是z的地址。而*a=x则是把x的内容赋值给a指针指向的内容 3(也就是z的值)。
2015-03-17 12:43
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:5 
这。。。。。我怀疑你是才上课,或者没看书。

你醒了?快起来敲代码!!
2015-03-17 13:09
快速回复:关于数组与指针的小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023046 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved