我们知道用指针和引用来定义函数形参的时候,都可以直接改变参的值。那么指针和引用有哪些区别呢?
我们先根据引用和指针的定义展开:引用是某个变量或者对象的别名,而指针则存储的是一个机器码地址,这个地址是某个具体变量或者对象的地址。因此区别有:
1)指针可以为空,但是引用不行
2)声明指针可以不指向任何对象,因此使用指针之前必须做判空操作,而引用则不必
3)引用一旦声明后,就不可以改变指向;但是指针可以,如++操作符,指针则指向下一个对象,而引用则改变的是指向对象的内容
4)引用的大小是所指变量的大小,而指针仅仅是个机器码 ,指针的大小永远都是4个字节,不管是几级指针
5)引用形式上漂亮
6)引用比指针安全,而指针的指向很灵活,容易产生野指针,比如多个指针指向一块内存,free掉一个,别的指针就成了野指针。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/baidu_28312631/article/details/47314437