| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1024 人关注过本帖
标题:高人来指点迷津吧!指针实在是问题多多。
只看楼主 加入收藏
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:16 
高人来指点迷津吧!指针实在是问题多多。
指针节省函数调用代价。

我们可以将参数,尤其是大个的参数(例如结构,对象等),将他们地址作为参数传给函数,这样可以省去编译器为它们制作副本所带来的空间和时间上的开销。
不明白意思谁能举个简单的例子说明一下吗?
搜索更多相关主题的帖子: 函数 多多 编译器 制作 
2012-02-17 12:43
慕羿
Rank: 4
等 级:业余侠客
帖 子:40
专家分:206
注 册:2012-2-16
收藏
得分:6 
当你传递指针时,你只需要传递几个字节,不管它实际指向的东西有多大都是如此。而如果你不用指针,那你可能就要传递几十几百甚至更多的字节。导致程序在调用函数时花费多出很多倍的资源消耗代价。

比如,你要把包含着一个大数组的结构传递给函数,那就可能需要消耗掉堆栈里数百甚至上千字节的空间用于复制该参数。而你要是把指向该结构的指针传递给函数,那堆栈里消耗的就只有几个字节。
2012-02-17 13:09
巴克
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:93
专家分:199
注 册:2012-2-8
收藏
得分:0 
楼上正解..指针节省很多空间的.
2012-02-17 20:44
转角有梦在等
Rank: 2
来 自:黑龙江
等 级:论坛游民
帖 子:31
专家分:95
注 册:2012-2-4
收藏
得分:4 
指针=4个字节, 无论指向谁,指向的有多大,都会发给指针4个字节
 编译器,会在这4个字节去找到他指向大型数剧,
    int a[1000], *p;
    p=a;
    sizeof(*p);
    sizeof(a[1000]);

[ 本帖最后由 转角有梦在等 于 2012-2-17 21:03 编辑 ]

一起努力,,,  QQ:7325231
2012-02-17 20:56
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
收藏
得分:0 
回复 4楼 转角有梦在等
就是在指向大型数据时不懂的
int a[1000],*p;
 p=a;
   
sizeof(*p);

sizeof(a[1000]);
 *p指向a[0]就这一个元素吗,指针如何能表示a这个整体呢,而对数据组a进行值传递时要消耗几千字节内存作副本,如果对其中一个元素(假设a[100])值传递也只需要几个字节,和指针差不多!
我是自学的没有老师交,可能理解的狠有问题,希望你们能教教我!

Stay hungry , Stay foolish!
2012-02-17 23:17
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
收藏
得分:0 
回复 2楼 慕羿
含着一个大数组的结构传递给函数,那就可能需要消耗掉堆栈里数百甚至上千字节的空间用于复制该参数。
请问能给个简单的例子让我看看就是想不明白!!

Stay hungry , Stay foolish!
2012-02-17 23:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
給你舉一個例子吧:現在你有一貨倉的貨物,需要轉交給另外一個人,你是把所有貨物搬運過去給他,還是把貨倉地址告訴他讓他自己去提貨?

授人以渔,不授人以鱼。
2012-02-17 23:32
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
收藏
得分:0 
回复 7楼 TonyDeng
一仓库的东西都要提走吗?如果他要一件,我就搬一件给他行吗?为什么要把整个都搬过去呢?
想计算机就算知道仓库在哪,确还是不知道里面的内容,都是代表那些量
我会给他地址让他提货,但如果他只要一件货物,指针的优势如还能体现吗!

Stay hungry , Stay foolish!
2012-02-18 07:23
fahfuq
Rank: 2
等 级:论坛游民
帖 子:30
专家分:23
注 册:2012-1-21
收藏
得分:0 
飘过
2012-02-18 08:52
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:3 
回复 8楼 清微御宇
如果给他一张写着地址的字条和给它一件货费的劲差不多,那直接给它确实比他自己取方便。但不是这样的时候,给他地址就有优势。
2012-02-18 09:19
快速回复:高人来指点迷津吧!指针实在是问题多多。
数据加载中...
 
   



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

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