大多数现代编程编译器(如JAVA等)都没有指针支持。 但在golang谷歌再次引入指针。 那么,我只是想了解指针如何影响编程语言? 因为指针有什么样的安全线程吗?
如果这是因为安全性,那么为什么我们在LINUX和UNIX上拥有世界上最安全的系统(两者都是用C语言构建的)
答案 0 :(得分:2)
技术上,所有语言都使用指针。当您使用Java或C#或Javascript创建对象的实例并将其传递给方法时,实际上是将指针传递给包含该对象的内存块,您将通过该指针操作该内存上的数据。想象一下你不能通过参考的语言。你不可能做得多,现在好吗?每当你用任何语言通过引用时,你都会用最基本的术语 - 使用美化指针。
然而,你可能意味着"为什么要向人们展示指针;它们更加复杂,或类似的东西......而答案可能就是速度和传统。我们拥有的一些最快的语言是C和C ++ ......它们已经存在了相当长的时间。它们是经过验证的,人们知道如何使用它们。大多数软件都以这种或那种方式基于它们。大多数操作系统是用C或其某些变体编写的。甚至其他编程语言。
答案 1 :(得分:2)
C / C ++指针正常运行。 实施例
void f(int* a) {
a++
直接操作是危险的。
但是,Golang指针无效。
所以,同名和相同的意思"指针"。
但是,如何使用有区别。
答案 2 :(得分:1)
JAVA和C#与C ++的“现代”比较是程序员可以做的最糟糕的事情。 JAVA和C#是托管语言,这意味着内存根本不由程序员管理(这是指针的主要功能).C ++是一种非托管语言,这就是为什么C ++比任何托管语言都快得多的原因。您将看到的几乎所有现代PC游戏都是使用C ++制作的,因为它比任何托管语言运行得更快。
答案 3 :(得分:0)
指针使引用调用更容易,但更容易被破坏,因为通过指针我们可以直接访问内存位置,因此可能是一个安全问题。
这些问题可以通过防御性编码来防止,但这需要用户具备知识和勤奋。