| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 611 人关注过本帖
标题:关于指向指针的指针的问题
只看楼主 加入收藏
EricZhan
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2010-7-9
结帖率:86.67%
收藏
已结贴  问题点数:20 回复次数:7 
关于指向指针的指针的问题
今日我在书上看到了一个例子,我简单写一下.
有一个函数a(*b)
           int *p;
           p=b;
P不是指向指针的指针吗,为什么定义是不是**P
搜索更多相关主题的帖子: 指针 
2010-07-26 22:32
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
描述的不怎么明白呀……
2010-07-27 00:35
encounter
Rank: 5Rank: 5
来 自:扬州
等 级:职业侠客
威 望:2
帖 子:150
专家分:359
注 册:2010-7-24
收藏
得分:0 

看错了

[ 本帖最后由 encounter 于 2010-7-27 09:46 编辑 ]

ping   nbtstat   netstat   tracert    nat   at    ftp   telnet..................
2010-07-27 09:10
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:10 
p=b;
这是把b的内容赋值给p
*p是个指针,*b是个指针
p和b都是存放地址的变量,就是变量而已,他们的值是地址。
p=b的意思是 让p这个地址里的内容变成b这个地址里的内容:
例如:
int i=2;
int *b,*p;
b=&i; //b这个变量的值是&i(是个地址)
p=b; //经过这个操作那么p这个变量的值就是&i;
*b的值就是i, 是指向&i这个地址的内容,2;
为什么不定义为**p;
根据相同类型之间才能相互赋值:
先看类型,*p,和*b的类型都是int,而p和b的类型都是int *,所以它们能相互赋值。
如果定义为**P,那么p的类型就是int **,而与b的类型不同。
要用到强制转换:p=(int **)b;才可以,编译程序会报警。
**p指向指针的指针,的意思是指向地址的地址,也就是p存放的是地址的地址,
而上面不需要这么曲折的指向,只是让b的内容备份一个给p(通俗之说)。
p=b;可以理解为 让*p也指向,*b所指向的内存地址。



[ 本帖最后由 do8do8do8 于 2010-7-27 09:22 编辑 ]

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-27 09:15
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:0 
楼主说的不怎么明白,应该是这样吧
a(int *b)
{
    int *p;
    p=b;
}
这就是一个简单指针赋值的过程,哪有指向指针的指针??
2010-07-27 09:20
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:10 
a(int *b)
{   
    int *p;
    p=b;
}

这个函数,并没有出现二级指针的情况啊!
函数a的参数是一个int类型的指针,也就是说外部传入了一个int类型的指针,
函数体内部,是把这个传入的指针赋值给内部定义的一个指针变量 p。
就这样了,没有别的了啊~
2010-07-27 14:23
jiangshuangz
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-10-18
收藏
得分:0 
高手一出手,就只有没有
2010-11-10 23:35
f112
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-11-16
收藏
得分:0 
P不是指向指针的指针吗,为什么定义是不是**P .很有创意的一个问题。从计算机的内存角度看它。我想你会明白。内存是这样一片连续的空间,这个空间里面能保存数据,而且对每个空间都有相应的编号,这个编号就叫这个存储空间的的地址。指针就是用来保存这个东西的。指针是这样一个特殊的存储单元,它保存了其它存储单元的地址。为了方便访问内存,便于编程,我们就定义了“*”这个符号。用以表示我们定义的单元是用来保存内存地址的。而不是想当然的,看到两个**,就用你的思维把“**”和“指向指针的指针”拉上了关系。这是一个错误的理解。
2010-11-16 19:18
快速回复:关于指向指针的指针的问题
数据加载中...
 
   



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

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