将"引用"作为函数参数有哪些特点

2023-06-30   


(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。
   (2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。
   (3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用”*指针变量名”的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,更清晰。


相关内容:

  1. 我能否用void** 指针作为参数, 使函数按引用接受一般指针
  2. 值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
  3. 将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
  4. C#中有没有静态构造函数,如果有是做什么用的?
  5. C有"按引用传递"吗
  6. Ref与out有什么不同