0
A
回答
3
您已经在使用指针了。 Java中的每个非原始变量(也可能是C#,虽然我不太熟悉它)是指向对象的指针。
也许你想问关于pointer arithmetic的问题?
2
因为指针可让您实际手动访问RAM(在Java中或“安全”C#中不可能),并且它们让您可以控制事物的分配方式。
C#和Java中“hold”对象的变量实际上是指向内存中对象的指针(也简称为引用),因此为什么类称为“引用类型”。相比之下,结构是“值类型”,所以结构变量实际上保存着数据本身。指针让你动态地分配和访问内存,并且不需要对编译器部分进行任何安全检查 - 它们会给你提供一些潜在的性能提升,但是它们让你检查你的代码并确保它的正确性。
其原因有点微妙:您需要指针,因为要使用内存,您需要知道编译时需要的内存大小。但是,当然你永远无法确定用户不会试图将100 MB的文件加载到仅用于处理20 MB的程序中,而另一方面却无法保留这么多自一开始(想想如果每个人都保留所有资源会发生什么)。所以你要求操作系统为你分配一块内存并给你它的第一个字节的地址,这就是为什么需要指针的原因。 (还有指针的其他用途,如内存映射文件和设备,但会使文章更长。)
性能关键型应用程序以及充满bug的应用程序都经常使用指针。 :)
1
我认为通过理解指针可以更好地理解计算机内真正发生了什么,发生了什么以及程序如何实际工作。
如果你不关心它,只想让你的java程序工作,你可以跳过它们;否则我认为他们会帮助你完成有关编程的任何事情。
相关问题
- 1. 什么是指向指针的指针?
- 2. 什么是函数指针的使用?
- 3. 指针指针的意义是什么?
- 4. 指针指针的语法是什么?
- 5. 为什么cudaMalloc()使用指针指针?
- 6. 为什么Java不是使用指针
- 7. 什么是强指针和弱指针
- 8. 指针指针是什么意思?
- 9. 引用双指针的值是什么?
- 10. 为什么使用指针
- 11. 为什么指向char的指针指针是最新的?
- 12. 为什么和什么时候值得使用指针指针?
- 13. 指针指针的作用是什么? char **
- 14. 在C和C++中,const指针指针指的是什么?
- 15. 什么是悬挂指针
- 16. 什么是函数指针?
- 17. 什么是裸指针?
- 18. 什么是指针声明?
- 19. 什么是指针搅拌?
- 20. 什么是参考指针?
- 21. 什么是合成指针?
- 22. 为什么strcpy不使用dest指针的const指针?
- 23. 使用指针指向什么点?
- 24. 在函数中使用指针指针的正确方法是什么?
- 25. 将指针传递给void *到pthread_join的目的是什么?
- 26. 压缩对象指针的目的是什么?
- 27. 为什么不能使用指向char指针的指针而不是char指针数组?
- 28. 共享指针的处理是什么?
- 29. 类指针*的含义是什么?
- 30. vbscript中的函数指针是什么?
请参阅:http://stackoverflow.com/questions/5727/what-are-the-barriers-to-understanding-pointers-and-what-can-be-done-to-overcome/5754#5754 – 2011-01-29 00:47:29
指针不会帮助Java程序员做任何事情...... – 2011-01-29 00:48:31