C++自学笔记(3)之引用

引用是变量的别名,格式 为 类型 &引用变量=被引用变量
先看一段代码

int main(void)
{
    int a=3;
    int &b=a;    //引用必须初始化
    b=10;
    cout<<b<<endl;
    return 0;
}

输出结果为1 0
可见,改变引用的变量也会改变原变量,反之,更改a的值b也会发生改变

结构体类型的引用

定义结构体变量Coor,并定义c1对其进行引用

#include <iostream>

using namespace std;
typedef struct
{
    int x;
    int y;
}Coor;

int main(void)
{
    Coor c1;
    Coor &c=c1;    //引用必须初始化
    c.x=10;
    c.y=11;
    cout<<c1.x<<c1.y<<endl;
    return 0;
}

输出结果1011

指针类型的引用

形式 *&指针引用名=指针

#include <iostream>

using namespace std;
int main(void)
{
    int a=10;
    int *p=&a;   //定义指针
    int *&q=p;   //引用p
    *q=20;          //更改q指针对应的数据
    cout<<a<<endl;
}

引用作为函数参数

看一段不用引用的函数调用交换两个变量的值

#include <iostream>
using namespace std;

void fun(int *a,int *b)    //a,b为指针,*a,*b对应存放的数值
{
    int c=0;
    c=*a;
    *a=*b;
    *b=c;
    cout<<*a<<'\n'<<a<<endl;
}

int main(void)
{
    int x=10,y=20;
    fun(&x,&y);     //传入x,y的地址
    cout<<x<<y<<endl;
}

输出结果
在这里插入图片描述
这里是对x,y的地址传入,形参为其指针。
使用引用作为函数参数操作:

#include <iostream>
using namespace std;

void fun(int &a,int &b)        //&a,&b作为x,y数值的引用
{
    int c=0;
    c=a;
    a=b;
    b=c;
    cout<<a<<'\n'<<&a<<endl;   
}

int main(void)
{
    int x=10,y=20;
    fun(x,y);          //直接传入x,y数值
    cout<<x<<y<<endl;

这里将x,y传入之后,a,b作为x和y的别名。之后对a,b进行交换相当于对x,y进行交换。输出结果如下
在这里插入图片描述
其中a对应x的值为20.&a存放的是a的地址

猜你喜欢

转载自blog.csdn.net/qq_39672732/article/details/88668786
今日推荐