2

我了解使用指针(返回位置)的基本逻辑,您可以通过它来玩弄它, int a = 10; int* b = &a; int* c = b; 并让一个位置指向一个位置的引用,从而在代码中指向一个类似上面的值。

问题:什么时候适合使用它们?

*仅在管理内存时才合适吗?*只有当你有一个巨大的解决方案文件时才合适吗?* C++ 程序员何时使用它有社会规范吗?(如果这听起来很奇怪,我很抱歉,但在我们的阅读中作者似乎随机使用它们)。

我正在学习游戏编程,我们现在正在讨论这个问题。我已经从代码中提取了指针和引用,但仍然得到相同的值和结果,所以我只是对为什么这是一个有用的东西感到困惑。

4

2 回答 2

2

C++ 支持指针主要是为了与 C 保持兼容,并让您继续做低级内存工作,创建自己的数据结构等等。
该语言确实支持引用,基本上是对指针的抽象,这基本上意味着您可以将变量命名为

int a;
int& b = a; //alias for a

通过引用或 const 引用传递是 C++ 中节省执行时间的常用方法。如果你有一个超级大的超大类,它的成员变量占用了大量空间,然后你将它按传递给函数,程序必须将所有数据复制到堆栈中才能执行函数,这是不可取的在几乎所有情况下。通过引用传递不会复制任何内容,因此它更干净、更快捷。

于 2013-11-02T21:35:00.937 回答
0


当您需要指针和引用时,有很多不同的情况,因此我将尝试列出其中的一些:函数,而不是使用引用,本质上是传递对象的地址。
速度 - 与上面相同,传递引用比复制它快
多个返回值 - 您可以通过引用传递变量并将结果直接写入其中,从而允许您拥有多个返回值(并返回诸如数组之类的东西)
动态分配内存 - 如果您在运行时创建新对象(而不是在编译时设置所有内容),则需要使用指针

于 2013-11-02T21:36:38.247 回答