11.C++相较于 C 语言的增强

1.C++相较于 C 语言的增强

1.1引用 Reference

1.1.1 引用基础案例

&

定义了一个 int 类型的引用,引用名称为 ret ,使用 num 赋值当前引用,可以认为

​ 1.ret 是一个引用

​ 2.ret 是 num 变量的别名

#include <iostream>

using namespace std;

int main(int argc, char const *argv[])
{
    int num = 10;
    /*
    C++ 特定的数据形式【引用】需要使用的【标记】标点符号
        &
    定义了一个 int 类型的引用,引用名称为 ret ,使用 num 赋值当前引用

    可以认为
        1.ret 是一个引用
        2.ret 是 num 变量的别名
    */
    int &ret = num;

    cout << "num = " << num << endl;
    cout << "ret = " << ret << endl;
    cout << "-----------------------" << endl;
    num = 20;
    cout << "num = " << num << endl;
    cout << "ret = " << ret << endl;
    cout << "-----------------------" << endl;
    ret = 1000;
    cout << "num = " << num << endl;
    cout << "ret = " << ret << endl;
    return 0;
}

1.1.2一个变量可以有多个引用

一个变量可以同时有多个引用,就例如一个人可以有多个外号

定义了一个 int 类型的引用,引用名称为 ret ,使用 num 赋值当前引用。

ret1 ret2 ret3 都是 num 的引用。

#include <iostream>

using namespace std;

int main(int argc, char const *argv[])
{
    int num = 200;
    int & ref1 = num;
    int & ref2 = num;
    int & ref3 = num;

    cout << "num : " << num << endl;
    cout << "ref1 : " << ref1 << endl;
    cout << "ref2 : " << ref2 << endl;
    cout << "ref3 : " << ref3 << endl;

    cout << "-------------" << endl;

    ref3 = 1000;
    cout << "num : " << num << endl;
    cout << "ref1 : " << ref1 << endl;
    cout << "ref2 : " << ref2 << endl;
    cout << "ref3 : " << ref3 << endl;
    return 0;
}
1.1.3引用在函数参数中的使用

引用在函数参数中使用,相当于地址传递

优势

​ 1.相较于指针方式节省空间,引用不占用额外的内存空间,指针变量占内存的 8 个字节(64位操作系统)

​ 2.引用不会有额外的运算符使用,操作简单,使用方便

​ 3.引用效率高于指针。

#include <iostream>

using namespace std;

// 值传递
void swap1(int n1, int n2);

// 地址传递
void swap2(int *p1, int *p2);

/*
引用传递
当前函数所需的参数类型是引用类型

@param r1 int 类型引用
@param r2 int 类型引用
*/
void swap3(int &r1, int &r2);

int main(int argc, char const *argv[])
{
    int num1 = 200;
    int num2 = 1000;

    swap1(num1, num2);
    cout << "num1 = " << num1 << endl;
    cout << "num2 = " << num2 << endl;
    cout << "------------------" << endl;

    swap2(&num1, &num2);
    cout << "num1 =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值