【c++小白自学笔记】引用的初始化

一、变量的引用:

引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。

引用的声明方法:类型标识符 &引用名=目标变量名;

 例:char ch;

       char &rp=ch;

 1)引用仅是变量的别名,而不是实实在在地定义了一个变量,因此引用本身并不占用内存,而是和目标变量共同指向目标变量的内存地址.

 2)表达式中的取地址符&不再是取变量的地址,而是用来表示该变量是引用类型的变量。

 3)定义一个引用时,必须对其初始化。


示例

#include 

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 

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;

}

 

你可能感兴趣的:(c++)