一、变量的引用:
引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。
引用的声明方法:类型标识符 &引用名=目标变量名;
例:char ch;
char &rp=ch;
1)引用仅是变量的别名,而不是实实在在地定义了一个变量,因此引用本身并不占用内存,而是和目标变量共同指向目标变量的内存地址.
2)表达式中的取地址符&不再是取变量的地址,而是用来表示该变量是引用类型的变量。
3)定义一个引用时,必须对其初始化。
示例
#include <iostream>
using namespace std;
class cstu
{
public:
int b;
int &a;
cstu(int c) :a(c), b(c)
{
}
void show()
{
cout << a <<" "<< b << endl;
}
};
int main()
{
cstu st(12);
st.show();
return 0;
}
输出的结果为
10494906 12
请按任意键继续. . .
原因:因为12传递给c c传递给b后c与a占用了同一块空间,cstu结束之后c的空间被释放
修改为:
#include <iostream>
using namespace std;
class cstu
{
public:
int b;
int &a;
cstu(int &c) :a(c), b(c)//将c作为引用main函数中的d,d的作用范围大于对象
{
}
void show()
{
cout << a <<" "<< b << endl;
}
};
int main()
{
int d = 14;
cstu stu(d);//传递实参给cstu
stu.show();
return 0;
}