参考解答
(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。
(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。
(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用”*指针变量名”的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,更清晰。
相似问题
一个单向链表 不知道头节点 一个指针指向其中的一个节点 如何删除这个指针指向的节点?
一个单向链表,不知道头节点,一个指针指向其中的一个节点,如何删除这个指针指向的节点?
面向对象的三个基本特征是什么?详细解释一下这三个基本特征。
面向对象的三个基本特征是什么?详细解释一下这三个基本特征。
类成员函数的重载 覆盖和隐藏的区别是什么?
类成员函数的重载、覆盖和隐藏的区别是什么?
父子进程是否可以并发运行?
父子进程是否可以并发运行?
TCP与UDP的区别是什么?
TCP与UDP的区别是什么?
