1、C/C++为什么有指针?
这个很简单,程序都是在内存中运行的,只要有内存,就有内存地址,有地址,就必然有指针,只是C++对内存地址的访问做了语言的支持,称之为指针。
2、指针的优点?
a、效率,指针就是内存的地址访问(虽然不是真正的物理地址,但是通过简单的映射就可以得到),性能非常好。
b、C/C++语言的需要,C/C++没有完善的面向对象支持,因此你不能声明一个Object类型的形参来接收所有类型的实参,因此C++只能通过万能指针void*来支持,C++中new出来的对象都是指针类型的(区别于直接声明一个类对象,Java中声明一个类的对象不实例化就是null,C/C++中对象类型可以像基本类型那样直接声明一个)。
3、指针的缺点?
a、稳定问题,指针太灵活,不小心就容易出现指针访问越界之类的问题,非常容易出问题。
b、安全性问题。
4、java有类似指针,在java中称为引用。
所谓的引用就是内存地址的值。拿到该引用就相当 于得到了该内存处的对象。