提问者:小点点

什么是指针?[副本]


在许多C语言中,以及一些较老的语言如Fortran中,可以使用指针。

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

谢啦!


共3个答案

匿名用户

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

同样,许多语言也区分了按值传递和按引用传递。本质上,这意味着我是否会在每次需要引用的时候传递整个对象?或者,我会把它的地址给出,这样其他人就可以推断出他们需要什么了吗?

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

匿名用户

这篇wikipedia文章将为您提供关于什么是指针的详细信息:

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

匿名用户

指针是一个变量,它包含另一个变量的地址。这允许您间接引用另一个变量。例如,在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
}