为了账号安全,请及时绑定邮箱和手机立即绑定

为什么使用指针能让程序的内存开销小且运行速度快?

为什么使用指针能让程序的内存开销小且运行速度快?

桃花长相依 2019-02-07 11:07:13
为什么使用指针能让程序的内存开销小且运行速度快?
查看完整描述

3 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

依我看,主要体现在两点:
1 仿制过分复制
函数调用中传值,会占用大量堆栈空间,同时过多的拷贝函数调用会降低性能。
例如有个类
class A
{
int buffer[1000000];
.....
A(const A&)....
A& operator=(const A&)....
};

void function(A a)
{
A b;
b = a;
.......
}
上面的例子中,不但会占用大量堆栈空间,而且等号与拷贝函数都影响性能。
2 动态生成内存
很多对象可能一辈子都不用构造,用指针可以做到这点。
如:
class Render
{
void InitRender()
{
int iRender = CheckDevice(); //检查最佳配置
switch(iRender)
{
case d3d9:
CreateD3D9Render(&pd9);
break;
}
}
IOpenGLRender* por;
ID3D9Render* pd9;
ID3D11Render* pd11;
IGDIRender* pgr;
};
显然,你只需要一个Render,如果不用指针,一个Render可能耗掉你上百MB内存



查看完整回答
反对 回复 2019-03-14
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

1)越是怕指针,就越要使用指针。不会正确使用指针,肯定算不上是合格的程序员。

(2)必须养成“使用调试器逐步跟踪程序”的习惯,只有这样才能发现问题的本质


查看完整回答
反对 回复 2019-03-14
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

指针只是一个整数值,在内存中代表着内存地址
就好比你要搬家,你只需要换地址就可以了,而不用把整个房子搬到新的地址上去。

查看完整回答
反对 回复 2019-03-14
  • 3 回答
  • 0 关注
  • 949 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信