#include<iostream>usingnamespace std;#include<string>//引用/*
引用的基本使用:
作用:给变量起别名
语法:数据类型 &别名=原名
注意:别名的数据类型要和原名相同
*/intmain(){//引用之后,两个变量操作同一块内存int a =10;int&b = a;
cout << a << endl;//10
cout << b << endl;//10
b =20;
cout << a << endl;//20
cout << b << endl;//20system("pause");return0;}
02引用的注意事项
#include<iostream>usingnamespace std;#include<string>//引用的注意事项/*
1.引用必须初始化
int &b; 错误的,没有初始化
int &b=a; 正确的
2.引用在初始化之后不可以改变
*/intmain(){//引用必须初始化int a =10;int&b = a;//引用在初始化之后不可以改变int c =20;
b = c;//赋值操作,而不是更改引用
cout << a << endl;//20
cout << b << endl;//20
cout << c << endl;//20system("pause");return0;}
03引用做函数参数
#include<iostream>usingnamespace std;#include<string>//引用做函数参数/*
参数的传递方式:值传递(不改变实参),地址传递(改变实参)
作用:函数传参时,可以利用引用的技术让形参修饰实参
优点:可以简化指针修改实参
目前可以做到形参修饰实参的操作有两种:地址传递,引用传递
*///实现两个数字交换函数//1.值传递voidswap01(int a,int b){int temp;
temp = a;
a = b;
b = temp;}//2.地址传递voidswap02(int*a,int*b){int temp;
temp =*a;*a =*b;*b = temp;}//3.引用传递voidswap03(int&a,int&b){//引用就是给变量起别名,两个名字指向同一个地址(名字可以相同),所以在这里改了,也相当于把实参改了int temp = a;
a = b;
b = temp;}intmain(){int a =10;int b =20;
cout <<"进行交换前实参的值"<<"a="<< a <<" "<<"b="<< b << endl;swap01(a, b);
cout <<"使用值传递进行交换后的实参的值"<<"a="<< a <<" "<<"b="<< b << endl;//值传递(不改变实参//swap02(&a, &b);//cout << "使用地址传递进行交换后的实参的值" << "a=" << a << " " << "b=" << b << endl;//地址传递(改变实参)swap03(a,b);
cout <<"使用引用传递进行交换后的实参的值"<<"a="<< a <<" "<<"b="<< b << endl;system("pause");return0;}