Php 其他语言上的C指针等价物
作为CS的本科生,我从C开始,指针是一种重要的数据类型。此后,我接触了Java、JavaScript、PHP和Python。它们都没有指针本身 那为什么呢?他们的语言中是否有类似指针的等价物,或者指针的功能不再重要了 我大致有一些想法,但我很想听听更有经验的程序员对此的看法。为什么 一般来说,指针被认为太危险了,所以现代语言尽量避免直接使用指针 他们的语言中是否有类似指针的等价物,或者指针的功能不再重要了 功能非常重要。但为了降低危险性,指针被抽象为毒性较小的类型,如引用 基本上,这归结为更强的类型和指针算法的缺乏。在Java中:Php 其他语言上的C指针等价物,php,javascript,python,c,pointers,Php,Javascript,Python,C,Pointers,作为CS的本科生,我从C开始,指针是一种重要的数据类型。此后,我接触了Java、JavaScript、PHP和Python。它们都没有指针本身 那为什么呢?他们的语言中是否有类似指针的等价物,或者指针的功能不再重要了 我大致有一些想法,但我很想听听更有经验的程序员对此的看法。为什么 一般来说,指针被认为太危险了,所以现代语言尽量避免直接使用指针 他们的语言中是否有类似指针的等价物,或者指针的功能不再重要了 功能非常重要。但为了降低危险性,指针被抽象为毒性较小的类型,如引用 基本上,这归结为更强的
- 与使用malloc分配的结构指针不同,您使用的是对使用“new”实例化的类实例的引用。(在Java中,不能像在C/C++中那样直接为堆上的对象分配内存)
- 原语没有指针,但主库中内置了一些库,用于将int、double等包装到对象(Integer、double)中
Object t = new A();
t = new B();
您正在场景后面交换指针。一些语言重新引入了指针式Go的概念,但你不能用它做算术运算
所以在某种程度上:没有指针从语言中消失,它们只是以更好的方式实现的。C拥有设计指针的方式一点也不好,但它达到了它的目的。它不好有很多原因,一个是:它破坏了你程序的不变量。我并不是要避免它,当然它们对C语言来说是至关重要的。这可能会有点帮助:也请看,这些语言中的引用实际上是指针,只是没有算术?@CharlesW。是的,如果你挖得够深,它们只是指针。(想想计算机通过基本操作访问数据的方式有多有限。)但是所有的东西都是高度抽象和分层的,所以你不能用C指针做任何讨厌的(有趣的)事情。C++仍然有指针,但这主要是因为它必须与C保持兼容。