5

请参阅:了解指针


在许多 C 风格的语言和一些较旧的语言(如 Fortran)中,可以使用Pointers

作为一个只真正使用基本、javascript 和 actionscript 编程的人,你能向我解释一下指针是什么,它最有用的是什么?

谢谢!

4

5 回答 5

9

这篇维基百科文章将为您提供有关指针是什么的详细信息:

在计算机科学中,指针是一种编程语言数据类型,其值使用其地址直接引用(或“指向”)存储在计算机内存中其他位置的另一个值。获取或请求指针所指的值称为解引用指针。指针是通用引用数据类型的简单实现(尽管它与 C++ 中称为引用的工具有很大不同)。指向数据的指针提高了重复操作(例如遍历字符串和树结构)的性能,指向函数的指针用于面向对象编程中的绑定方法以及与动态链接库 (DLL) 的运行时链接。

于 2008-09-30T16:34:09.307 回答
7

指针是一个包含另一个变量地址的变量。这允许您间接引用另一个变量。例如,在 C 中:

// x is an integer variable
int x = 5;
// xpointer is a variable that references (points to) integer variables
int *xpointer;
// We store the address (& operator) of x into xpointer.
xpointer = &x;
// We use the dereferencing operator (*) to say that we want to work with
// the variable that xpointer references
*xpointer = 7;
if (5 == x) {
    // Not true
} else if (7 == x) {
    // True since we used xpointer to modify x
}
于 2008-09-30T16:33:39.713 回答
4

指针并不像听起来那么难。正如其他人已经说过的那样,它们是保存其他变量地址的变量。假设我想给你指路到我家。我不会给你我房子的照片,或者我房子的比例模型;我只是给你地址。你可以从中推断出你需要的任何东西。

同样,许多语言都区分了值传递和引用传递。从本质上讲,这意味着我每次需要引用它时都会传递整个对象吗?或者,我会直接给出它的地址,以便其他人可以推断出他们需要什么?

大多数现代语言通过找出指针何时有用并为您优化来隐藏这种复杂性。但是,如果您知道自己在做什么,手动指针管理在某些情况下仍然很有用。

于 2008-09-30T16:42:58.460 回答
1

SO中关于这个话题已经有好几次讨论了。您可以通过以下链接找到有关该主题的信息。关于这个主题还有其他几个相关的 SO 讨论,但我认为这些是最相关的。在搜索窗口中搜索“pointers [C++]”(或“pointers [c]”),您还将获得更多信息。

在 C++ 中我无法掌握指针和类

现代“参考”和传统“指针”有什么区别?

于 2008-09-30T16:38:11.577 回答
-1

正如有人已经提到的,指针是一个包含另一个变量地址的变量。

它主要用于创建新对象(在运行时)。

于 2008-09-30T16:36:21.657 回答