2.引用

//引用
//作用:给变量起别名
//语法:数据类型 &别名 = 原名
//注意事项:
// -引用必须初始化
// -引用在初始化后,不可以改变
//引用做函数参数,可以让形参修饰实参
//引用作函数返回值
//注意:
// -不要返回局部变量引用
// -函数调用可以作为左值
//引用的本质就是指针常量
//常量引用:主要用来修饰形参,防止误操作

#include<iostream>
using namespace std;

//1、地址传递
void mySwap01(int *a, int *b)
{
    int tmp = *a;
    *a = *b;
    *b = tmp;
    return;
}
//2、引用传递
void mySwap02(int& a, int& b)
{
    int tmp = a;
    a = b;
    b = tmp;
    return;
}

//引用作函数返回值
// 函数调用作为左值
int& test01()
{
    static int a = 10; //静态变量存放在全局区
    return a;
}

int main()
{
    int& ref = test01();
    cout << ref << endl;
    cout << ref << endl;
    test01() = 20;
    cout << ref << endl;
    cout << ref << endl;
    system("pause");
    return 0; 
}