| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2423 人关注过本帖
标题:关于指针的初始化问题
只看楼主 加入收藏
yuyangtian10
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-4-5
收藏
 问题点数:0 回复次数:10 
关于指针的初始化问题
int a;
int *p=&a;


书中说过。*是访问地址量中的数据的符合。那么如果;p表示指针      *p就表示访问p所存储的地址中的数据。&是取地址变量符,&a  代表去变量a中数据的地址,那么 其上的  *p=&a   就是错误的。因为
&a  只是个地址。  而*p就是地址中的数据。

请了解的人说一下??
实在不明白为什么会这样。难道 因为是初始化 就写称这样??
搜索更多相关主题的帖子: 指针 
2008-01-10 23:49
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
收藏
得分:0 
int *p=&a;
相当于:
int *p;
p=&a;

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-11 00:06
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
ls 正解
2008-01-11 00:28
yuyangtian10
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-4-5
收藏
得分:0 
看来是简写了
2008-01-11 00:34
way3
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-12-8
收藏
得分:0 
int a;
int *p=&a;   这里的指针p 的定义且初始于.
你也可以这样的理解,
int a;
int  *p;
 p=&a; 这里已经是一个语句了.
2008-01-11 01:20
wangkong123
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-12-6
收藏
得分:0 
对呀,就是这样
2008-01-20 22:56
chenyiqing23
Rank: 2
等 级:论坛游民
帖 子:84
专家分:53
注 册:2007-12-27
收藏
得分:0 
int a=1;
int  *p;
p=&a;
*(*p)=1; 应该可以这样理解吧!!!

int a=1;
int *p=a;
2008-01-21 16:32
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
原帖由 [bold][underline]chenyiqing23[/underline][/bold] 于 2008-1-21 16:32 发表 [url=http://bbs.bccn.net/redirect.php?goto=findpost&pid=1185209&ptid=196956][/url]
int a=1;
int  *p;
p=&a;
*(*p)=1; 应该可以这样理解吧!!!

int a=1;
int *p=a;

你理解的是错的
2008-01-21 16:37
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
int  *p=&a;
这种写法其实是可以这样理解的
int*  p=&a;
定义一个int*类型的变量p,赋初值&a
这种理解也反应了C程序员渴望一种指针类型,但int*却不是一种指针类型
注意int* p,q;不是声明了两个int*的变量
要想做到这点也不难
typedef int* intp;
intp p,q;
2008-01-21 16:41
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
回复 1# 的帖子
楼主,看书很仔细,要向他学习啊!

书上并没有错误,否则你的老师会提出来的!大学的任课老师还是要相信的,他们真的是人类灵魂的工程师。那么平时也要听讲哦!呵呵,

你的理解也没有错误,只是还差一步啊!
&a 表示变量a的内存地址,
而*p就是相应内存地址中的数据(或叫做内容),比如
int b = 2, *p;
p = &b;
那么,p和&b都是表示内存中的地址(当然p是间接的),
*p = b;即是 *p = 2;
而*p = &b,表示 *p 的值是一个内存地址(即这个地址中存储的是变量 b 的内存地址),
即上式中 *p 存储的是 b 的内存地址!!!
(当然你那个题目中,若非要像那样赋值,可能会有错误提示,因为通常不允许那样访问内存的!)

到这里不知道我说清楚没有!!!
如果楼主了解一些汇编语言的知识,可能会有所帮助,对于这个题的理解!

由于时间较紧张,我只解说到此。若有疑问,请留言[email]shengvsjun@[/email]
  

[[italic] 本帖最后由 Ethip 于 2008-1-21 20:14 编辑 [/italic]]
2008-01-21 20:07
快速回复:关于指针的初始化问题
数据加载中...
 
   



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

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