引用参数 到底起什么作用?
#include "stdafx.h "
#include <iostream>
using std::cout;
using std::endl;
#include <iomanip>
using std::setw;
using std::setfill;
struct time{
int hour;
int minute;
int senond;
};
void print1(const time &t)
{
cout < < setfill( '* ') < < setw(2) < < t.hour < < ": "
< < setw(2) < < t.minute < < ": " < < setw(2) < < t.senond < < endl;
}
int main(int argc, char* argv[])
{
time dinnertime;
dinnertime.hour = 10;
dinnertime.minute = 20;
dinnertime.senond = 2;
print1(dinnertime);
return 0;
}
以这个例子为例,大家给我讲讲print1用引用参数和不用引用参数到底有什么区别?
[解决办法]
1。修改这个参数就是修改传入的那个
2。可以节省传送费用
print1如果不引用出入参数后就要赋值一个副本,是不必要的
[解决办法]
避免产生副本,
这样可以使得函数中的操作都是针对实参进行,
同时可以节省副本生成的 时间、空间 消耗。
[解决办法]
传地址,减少消耗。
而且如果加const,就是可以修改直接修改从外面传进来的值,不用返回
介绍构造和析构的消耗
[解决办法]
引用参数与非引用参数:
非引用参数: 拷贝一个实参一个幅本,它们有不同的内存地址, 对形参的任何修改,并不能改变实参的值.
引用参数: 它是实参的一个别名,它们指向同一内存地址, 因此它的效率要高很多,同时它又引出正值问题: 对它的任何修改都将反映到实参上. 可以加const限定符来指明不可修改.