首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用指针的目的是什么?

使用指针的目的是什么?
EN

Stack Overflow用户
提问于 2011-01-29 08:45:54
回答 3查看 1.2K关注 0票数 0

我是一名c#/java程序员,并没有太多地使用指针。我只是想知道这是不是足够有用的东西来学习。

有人能解释一下为什么这些指针会对c#/java程序员有帮助吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-29 08:50:00

你已经一直在使用指针了。Java中的每个非原语变量(可能还有C#,尽管我对它不太熟悉)都是指向对象的指针。

也许你想问一下关于pointer arithmetic的问题

票数 3
EN

Stack Overflow用户

发布于 2011-01-29 08:51:06

因为指针允许您实际手动访问内存(在Java或“安全”的C#中是不可能的),并且它们允许您控制如何分配对象。

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

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

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

票数 2
EN

Stack Overflow用户

发布于 2011-01-29 08:52:56

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4834361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档