zoukankan      html  css  js  c++  java
  • C++的引用

    引用是C++的新增内容,在实际开发中会经常用到,引用可以直接看作是数据的一个别名,通过这个别名和原来的名字都能够找到这份数据。

    引用类似于Windows中的快捷方式,一个可执行程序可以有很多个快捷方式,通过这些快捷方式和可执行程序本身都能够运行程序

    医用还类似于人的绰号,使用绰号和本名都能表示一个人。

    引用比指针更加方便和易用,有时候甚至是不可或缺的。

    其实引用只是对指针进行了简单的封装,它的底层依然是通过指针来实现的

    为什么使用引用

    参数的传递本质上上一次赋值的过程,赋值就是对内存进行拷贝。

    对于像char、bool、、int、float等基本类型的数据,他们占用的内存只有几个字节,对他们进行内存拷贝非常快。而数组、结构体、对象是是一系列数据的集合,数据的数量没有限制,

    可能很少也可能很多,对他们进行频繁的内存拷贝可能会消耗很多时间,拖慢程序的执行效率。

    引用的语法格式:

    与指针的用法相似,只是用& 代替了*

    type 是被引用的数据类型,name是引用的名称, data是被引用的数据。引用必须在定义的同时初始化,并且以后也要从一而终,不能再引用其他数据,这点类似于常量。

    引用在定义时需要加 & ,在使用时不能加&,使用时加 & 表示取地址

    type &name = data;
        Color Red(255, 0, 0);
        Color &R = Red;
    
        R.display();
        Red.display();

    用&R表示Red, R.diasplay() 和 Red.display()执行的结果是相同的。

    引用可以函数的形参

    #include <iostream>
    using namespace std;
    
    void swap3(int &r1, int &r2);
    
    
    int main() {
        int num1, num2;
        cout << "Input two integers: ";
        cin >> num1 >> num2;
        swap3(num1, num2);
        cout << num1 << " " << num2 << endl;
    
        return 0;
    }
    
    
    //按引用传参
    void swap3(int &r1, int &r2) {
        int temp = r1;
        r1 = r2;
        r2 = temp;
    }

    引用作为函数的返回值

    #include <iostream>
    using namespace std;
    
    int &plus10(int &r) {
        r += 10;
        return r;
    }
    
    int main() {
        int num1 = 10;
        int num2 = plus10(num1);
        cout << num1 << " " << num2 << endl;
    
        return 0;
    }

    运行结果 20 20

    引用不能绑定到临时数据,但用const 关键字对引用加以限定后,引用可以绑定到临时数据

    引用类型的函数形参请尽可能使用const

  • 相关阅读:
    Python中列表
    Python中For循环
    While循环
    python中if else流程判断
    python中get pass用法
    python学习
    Forbidden Attack:7万台web服务器陷入被攻击的险境
    爱恨交织!我们经常抱怨却离不开的7种语言
    玩转大数据,你需要了解这8种项目类型!
    如何用 Python 实现 Web 抓取?
  • 原文地址:https://www.cnblogs.com/FZLGYZ/p/11608541.html
Copyright © 2011-2022 走看看