使用指针的目的是什么?

时间:2011-01-29 00:45:54

标签: pointers

我是一名c#/ java程序员,并没有真正玩指针。我只是想知道它是否足以学习。

有人可以解释为什么以及究竟指针对c#/ java程序员有什么帮助?

3 个答案:

答案 0 :(得分:3)

您一直在使用指针。 Java中的每个非原始变量(可能也是C#,虽然我不太熟悉它)是指向对象的指针。

也许你想问一下pointer arithmetic

答案 1 :(得分:2)

因为指针允许您手动访问RAM(在Java或“安全”C#中不可能),并且它们可以让您控制事物的分配方式。

在C#和Java中“保存”对象的变量实际上是将指针(也称为引用)保存到内存中的对象,因此为什么类被称为“引用类型”。相比之下,结构是“值类型”,因此结构变量实际上保存数据本身。指针允许您动态分配和访问内存,并且无需对编译器进行任何安全检查 - 它们可以为您提供一些潜在的性能提升,但是它们会给您带来检查代码并确保其正确性的负担。

原因有点微妙:你需要指针,因为为了使用内存,你需要知道编译时所需内存的大小。但是当然你不能确定用户不会尝试将100 MB的文件加载到你的程序中,该程序只能处理20 MB,而另一方面,你不能保留那么多从一开始(想想如果每个人都保留所有资源会发生什么)。所以你要求操作系统为你分配一块内存并给你第一个字节的地址,这就是为什么需要指针的原因。 (指针的其他用途,如内存映射文件和设备,但这会使帖子更长。)

性能关键型应用程序以及充满错误的应用程序通常都会大量使用指针。 :)

答案 2 :(得分:1)

我认为,通过了解指针,您将更好地了解计算机中发生的事情,在那里发生了什么以及您的程序如何实际工作。

如果你不关心它,只想让你的java程序工作,你可以跳过它们;否则我认为他们会帮助你完成有关编程的任何事情。