• C++入门之引用与内联函数


    目录

    一、引用

    1、初步理解

     2、使用细节

    3、做参数和返回值 

    ​二、内联函数


    一、引用

    1、初步理解

    引用在语法上的理解就是起别名用法就是在类型后面加&,例子:int a = 1; int& b = a;

    上例所示,执行后,b就是a的别名,它们代表同一块空间,a的改变会影响b,b的改变也会影响a。

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. int a = 1;
    6. int& b = a;
    7. a = 3;
    8. printf("a = %d, b = %d\n", a, b);
    9. return 0;
    10. }

     运行结果如下:

     2、使用细节

    1、引用必须得初始化

    2、一旦初始化,引用对象不可改变

    3、一个引用只能有一个对象,但一个对象能有多个引用。

    1、未初始化的引用会报错

     2、一旦初始化,引用对象不可改变

    执行结果:

     3、一个对象可以有多个引用 (等于可以起多个别名)

    执行结果: 

    3、做参数和返回值 

    引用做参数的价值十分大。在C语言,我们在函数里面想要修改参数必须使用指针,加大了编程难度,而C++里面我们就可以传引用(引用的底层也是指针,但从语法上来说,是参数的别名),在函数里直接修改参数,它在外面也会跟着改变,更加简单。

    同时,在参数为string或vector、map等占空间比较大的类型时,引用做参数比不带引用更高效,因为拷贝会消耗内存,而我们传引用,因为底层是指针,只占4或8字节,所以更快。

     执行结果:

     引用做返回值可以让我们在调用函数后对返回值直接做调整。

    要注意不能返回函数里面的定义的变量的引用,因为函数体里面的变量在函数调用完成后是要销毁的,如果返回了临时变量的引用,就类似野指针一样,有风险。

     执行结果:

     二、内联函数

    在C语言中我们将一些频繁调用的小函数写为宏函数,提高代码的执行效率。但宏函数有着许多缺点:不检查数据类型、无法调试、写的难度略高,易写错。C++就出现了内联函数来替代宏函数,内联函数就是在函数名前面加 inline 关键字,它会在调用的地方展开,减少函数调用。

     内联函数适用于频繁调用的小函数(10行左右),如:swap() ,max()等

    内联函数只是建议编译器展开,并不代表一定会展开,若函数太长或函数为递归函数,编译器觉得不应该展开,那将不会展开。

    如果声明和定义分离的内联函数,声明和定义都要写在头文件中,并加上inline关键字,因为inline只在定义起作用,内联函数在调用地方展开,是没有地址的

    感谢观看!!!

  • 相关阅读:
    apache poi 实现Excel 下拉联动
    微信小程序 API 简介
    原油等特殊期货开户要求和豁免
    哈希及哈希表的实现
    机器学习HMM模型
    【算法优选】 滑动窗口专题——壹
    M - Two Operations
    【进程概念④】:进程地址空间(虚拟内存与物理内存)
    confluence的几个高危漏洞复现
    信息系统项目管理师 第四版 第2章 信息技术发展
  • 原文地址:https://blog.csdn.net/m0_74626010/article/details/133880365