指针和引用在形式上比较好区分,由于有很多相似的功能,因此在使用上容易混淆。因此有必要对指针和引用进行对比,以便于在使用时使程序正确高效。
1.引用不可以为空,而指针可以为空。
我们知道引用是对象的别名,因此他不可以为空,因为引用的对象都不存在,怎么可能会有别名。因此在使用时必须对引用进行初始化。而指针可以指向任何对象,也可以不初始化。
2.使用指针之前要判空,而引用不必。
由于指针可以指向任何对象,也可以不指向任何对象,因此在使用前必须先进行判空。而引用则不必,因为引用是对象的别名,在进行引用的时候这个一定是合法的。因此,从这个角度来看,引用比指针安全。
3.引用不可以改变指向,但是指针可以改变指向,指向其他对象。
指针虽然不可以改变指向,但是他可以改变初始化对象的内容。例如++操作。
4.引用的大小是指所指变量的大小,而指针的大小是指针本身的大小(4个字节)。
5.指针比引用更安全
由于不存在空引用,并且引用一旦被初始化指向某一个对象,他就不能变为另一个对象的引用,因此引用很安全。而指针可以随时指向任何对象,并且可以不初始化,所以不安全。并且指针有可能产生野指针,造成内存泄漏。