C++学习之引用

本文深入探讨了C++中引用的概念,包括变量、指针、结构体及函数形参的引用,通过实例展示了引用的使用方法及其对程序设计的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++引用主要有变量的引用,指针的引用,结构体的引用,函数形参的引用。

变量的引用:

int a=10;
int &b=a;
b=20;

指针的引用:

注意此处指针引用的格式,必须先把引用对象的类型表明,然后再+&+引用名
int* x=&a;
int* &y=x;//注意此处指针引用的格式,必须先把引用对象的类型表明,然后再+&+引用名
*y=33;

函数形参的引用:

可以省去利用指针进行传值时所带来的理解困难。

 

下面为四种引用的测试代码:

#include <iostream>

using namespace std;

typedef struct {//定义一个结构体
    int x;
    int y;
}Cool;
void fun(int &x,int &y);//函数实现的功能是交换两个参数的值
int main() {
    cout << "本程序目的在于测试引用的使用,需要注意的是在定义引用时必须初始化。" << endl;
    cout << "第一个板块,简单测试对于变量的引用:" << endl;
    int a=10;
    int &b=a;
    b=20;
    cout<<"a:"<<a<<" b:"<<b<<" a+b:"<<a+b<<endl;
    cout << "第二个板块,简单测试对于指针的引用:" << endl;
    int* x=&a;
    int* &y=x;//注意此处指针引用的格式,必须先把引用对象的类型表明,然后再+&+引用名
    *y=33;
    cout<<"*x:"<<*x<<" *y:"<<*y<<" *x+*y:"<<*x+*y<<endl;
    cout << "第三个板块,简单测试对于结构体的引用:" << endl;
    Cool c1;
    Cool &c2=c1;
    c2.x=9;
    c2.y=99;
    bool aa;
    aa=(c1.x==c2.x);
    cout<<"c1.x:"<<c1.x<<" c2.x:"<<c2.x<<" c1.x和c2.x是否相等:"<<boolalpha<<aa<<endl;
    cout << "第四个板块,简单测试对于函数形参的引用:" << endl;
    int d1=21,d2=46;
    fun(d1,d2);
    cout<<"d1:"<<d1<<" d2:"<<d2<<" d1+d2:"<<d1+d2<<endl;
    return 0;
}
void fun(int &x,int &y){
    int c=0;
    c=x;
    x=y;
    y=c;
}

运行结果为:

本程序目的在于测试引用的使用,需要注意的是在定义引用时必须初始化。
第一个板块,简单测试对于变量的引用:
a:20 b:20 a+b:40
第二个板块,简单测试对于指针的引用:
*x:33 *y:33 *x+*y:66
第三个板块,简单测试对于结构体的引用:
c1.x:9 c2.x:9 c1.x和c2.x是否相等:true
第四个板块,简单测试对于函数形参的引用:
d1:46 d2:21 d1+d2:67

进程已结束,退出代码 0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值