| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 312 人关注过本帖
标题:求助:指针定义的一个小问题
只看楼主 加入收藏
xuexi005
Rank: 2
等 级:论坛游民
帖 子:30
专家分:10
注 册:2012-7-24
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
求助:指针定义的一个小问题
int array[10],*p=array;
等价于
 int array[10],*p;
p=array;
问,编译上面两个都合法,但不理解*p指针变量可以直接与地址相等。
应该是p=array才对啊?
2012-09-18 16:13
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用xuexi005在2012-9-18 16:13:53的发言:

int array[10],*p=array;
等价于
 int array[10],*p;
p=array;
问,编译上面两个都合法,但不理解*p指针变量可以直接与地址相等。
应该是p=array才对啊?

但不理解*p指针变量可以直接与地址相等。

p是指针变量

我感觉 这个貌似就是一个定义的时候赋初值和定义之后再赋值的问题 没看出这里面有啥深刻含义
2012-09-18 16:18
眼底星空
Rank: 4
等 级:业余侠客
威 望:3
帖 子:85
专家分:289
注 册:2006-9-2
收藏
得分:0 
“问,编译上面两个都合法,但不理解*p指针变量可以直接与地址相等。”
这句话的理解有误吧。
p才是指针变量,是p的值和地址相等,而不是*p。
int *p=array; 这句话这样理解吧:p是int*类型,p的值是数组array的首地址。

无为而为 && 每天进步一小点...
2012-09-18 17:53
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:10 
回复 2楼 zklhp
就是没啥深刻含义。

声明指针的语法就是 int *p,如果愿意赋初值,后面再跟一个 =array 就行了。从而变成,int *p = array。
如果就是声明一下,后一步再赋值就是第二种写法。第一种代码只是方便人写而已(也就是少打了一次 p,但代码更紧凑)。
2012-09-18 18:34
xuexi005
Rank: 2
等 级:论坛游民
帖 子:30
专家分:10
注 册:2012-7-24
收藏
得分:0 
二楼跟我一样的困惑,版主简单的说是乌龟的屁股,规定而已
2012-09-19 08:09
快速回复:求助:指针定义的一个小问题
数据加载中...
 
   



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

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