自己总是认为指针形参和引用形参的区别很小,他们都可以对实参进行改变,想了解一下他们的具体区别???
指针,引用都可以修改所指向的内容。这点是他们最大的共同点,也是他们使用最多的地方。
区别是指针可以为空,而引用不能为空引用。
标准 C 中是没有引用形参的,只能使用指针形参。
C++ 引入指针形参是为了降低指针灵活性带来的风险,指针形参不仅可以将数据的引用传入函数,还可以在函数内改变这个指针,也就是说在函数内部可以改变调用域的变量(而不仅仅是对象)。
相比起引用,指针有这些特点:
指针变量可以被重复赋值或更改
摘自『高质量c++编程』
条款一:指针与引用的区别
指针与引用看上去完全不同(指针用操作符’*’和’->’,引用使用操作符’.’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢?
首先,要认识到在任何情况下都不能用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量。相反,如果变量肯定指向一个对象,例如你的设计不允许变量为空,这时你就可以把变量声明为引用。