问题:将“引用”作为函数的参数有哪些特点?
分析:
这道题不仅考差了对引用的理解和应用,同时考差了对函数的三种传递参数方式基本概念的理解。总结起来,有如下特点:
• 传递引用给函数与指针的效果是一样的。这时,被掉函数的形参就被当成原来主调函数中实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应目标对象的操作。
• 使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作,而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本,如果传递的是对象,还要调用拷贝构造函数。因此,当参数传递的数据较大时,用引用必用一般变量传递参数的效率更高,所占空间也更少。
• 使用指针作为函数的参数虽然也能达到跟使用引用相同的效果。但是,一方面,再被调函数中同样要给形参分配存储单元,在使用时需要重复使用以“指针变量名”的形式进行运算,这很容易产生错误且程序的可读性较差,另一方面,在主调函数的调用点处,必须用变量的地址作为实参。因而引用更容易使用更清晰。