C ++:只有通过使用指针才能实现哪些操作

时间:2012-11-10 18:22:59

标签: pointers

我正在努力了解指针的优势。我知道定义以及如何创建定义,但我仍然不明白为什么它们很强大。

  • 所以有人可以给我一个你只能用指针做的事情的例子。
  • 我听说Python没有指针,这是否意味着有 使用Python无法完成的操作 - 我的意思是编程方面,而不仅仅是访问特定的内存位置和值?实例

1 个答案:

答案 0 :(得分:0)

指针主要是实现引用语义的机制。如果你想引用一个存在于其他地方的现有对象,那么你可以通过将指针传递给该对象来实现。

如果没有指针,您只能传递副本的对象。这将允许您传达,但您无法修改现有对象。 (当然,除非你的语言提供本机参考处理,比如C ++。)

作为测试,想象一下如何实现以下代码:

var a = 10;
var b = 20;

my_magic_swap(a, b);  // how to do this?!

assert(a == 20 && b == 10);

(答案当然是my_magic_swap应该接受原始变量的指针(或等效物)。)