C++基础- 引用

引用

引用的基本使用

作用:给变量起别名

语法:数据类型 &别名 = 原名

引用注意事项

  • 引用必须初始化
  • 引用一旦初始化,就不可以更改(一个别名只能初始化一次:只可以跟一个原名)

引用做函数参数

  • 函数传参时,可以用引用技术让形参修饰实参
  • 简化指针修饰形参
#include<iostream>              
using namespace std;
void change(int *a,int *b){ //基本的交换数字
	int temp;
		temp = *a;
		*a = *b;
		*b =temp;
}
int main(){
	int a = 10;
	int b = 20;
	cout << &a << "	" << &b << endl; //输出a和b的地址
	change(&a,&b); //调用函数
	cout << a << "
" << b << "
";
    cout << &a << "	" << &b << endl; // 再次输出a和b的地址
    
 return 0;
}

#include<iostream>              
using namespace std;
int main(){	
	int a;
	a = 10;
	int &b = a;
	b =20;
	cout << &a << "	" << &b << endl;
	cout << a << "	" << b << endl;
 return 0;
}

对别名的的操作就是对原名的操作

引用做函数的返回值

引用时可以作为函数的返回值的

注:不要返回局部变量引用

    函数调用作为左值(可以给它赋值)

我感觉是一个二级指针,是指向指针的指针

#include<iostream>            //引用做返回值
using namespace std;

int& test1(){//类型是引用型的
static int a = 10;//全局变量,全局区(程序结束后释放)
cout << &a <<"1"<< "
";
	return a;
}
int main(){
	int &ref = test1();
	cout << ref << "
";
	test1() = 1000;
	cout << &test1() << "2" << "
";
    cout << &ref << "3" << "
";
 return 0;

a,test1(),ref这三个的地址是一样

引用的本质

本质:引用的本质在C++内部的实现是一个指针常量

常量引用

const 引用

作用:常量引用主要用来修饰形参,防止误操作

在函数形参列表中,可以加const修饰形参,防止形参变成实参

 #include<iostream>        //引用常量
using namespace std;
void printf(const int &val){
    //val = 1000;         加了const后就不可以修改了哦
	cout << "val=" << val << endl;
}
int main(){
	//const 之后相当于 int temp = 10; const int &ref = temp;
	//const 之后ref变成了只读的状态,不可以修改
	//const int &ref = 10;//引用必须引一块合法空间
	int a = 100;
    printf(a);
 return 0;
}

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » C++基础- 引用