扩展资料:
在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。[1] 在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。[2]
在信息工程中指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中寄存器(Register)【用来指向该内存地址所对应的变量或数组】。指针一般出现在比较接近机器语言的语言,如汇编语言或C语言。面向对象的语言如Java一般避免用指针。指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的函数的值。
本回答被网友采纳举个例子,下图代码.
#include <stdio.h>
int main()
{ char *ps ;
ps = "C language!"; /*定义字符指针*/
printf("%s\n", ps); /*用字符指针PS来输出字符串的内容*/
return 0;
}
输出为 "C language"
这个列子中,字符串“C language!”, 存储在连续的无名存储区中,通过语句ps = "C language!, 将无名储存区的首地址赋给指针ps,也就是说,指针变量ps 指向无名储存区域的首地址,而不是把无名储存区域的内容保存在ps中,
#include <stdio.h>
int main()
{ char *ps = "C language!";
int n = 2;
ps = ps+2; /*移动指针ps*/
printf("%s\n", ps);
return 0;
}
这段代码输出结果为 language
这里初始化的时候把首地址赋给了ps , 后面操作ps= ps+2时,ps指向l 所在的空间。
本回答被网友采纳