变量的引用
- 一个变量的引用 就是 变量的别名。
- 实质上,变量名和引用名 都指向同一段内存单元。
引用类型的函数参数
- 如果形参为变量的引用名(Time &t),实参为变量名,
- 则在调用函数进行虚实结合时,
- 并不是为形参另外开辟一个存储空间(常称为建立实参的一个拷贝),
- 而是 把实参变量的地址传给形参(引用名),这样引用名也指向实参变量。
区别
- 普通的没有采用引用类型的函数调用,不会改变实参的值,形参是实参的拷贝。
- 采用引用类型的函数调用,会改变实参的值,因为形参和实参指向同一地址。
#include <iostream>
using namespace std;
class Time {
public:
Time(int h, int m, int s); // 构造函数
int hour;
int minute;
int sec;
};
// 初始化列表 构建 构造函数
Time::Time(int h, int m, int s) : hour(h), minute(m), sec(s) {};
// 形参t是Time类对象的引用
void fun(Time &t) {
t.hour = 18;
}
int main() {
Time t1(10, 13, 56); // t1是Time类对象
fun(t1); // 实参t1是Time类对象,可以通过引用来修改实参t1的值
cout << t1.hour << endl; // 输出t1.hour的值为18
return 0;
}
18
去掉 & 之后
10