zoukankan      html  css  js  c++  java
  • C++的引用的简单总结

    引用作为函数参数

    很多函数中的参数都是值传递的方式,这样函数会创建一个临时对象用来保存数据,占用内存开销;而引用不会,并且在特定情况下又是必须的选择;

    sample code:

    void swap(int& a, int& b)    // 引用参数
    {
        int t = a;
        a = b;
        b = t;
    }
    
    void main()
    {
        int a = 5;
        int b = 2;
        swap(a, b);
    }
    

    使用引用作为参数的作用:

    • 函数里的形参相当于主调函数里参数的一个别名,操作的对象其实是同一个;
    • 引用参数在内存中没有副本,是直接对实参进行操作的;
    • 作用和指针一样,但是如果使用指针的话则需要一直使用*变量名的操作;

    常引用

    如果希望提高程序效率,并且让让函数值不改变,则推荐使用常引用

    sample code:

    int a;
    const int& p_a = a;
    a = 3;    // 正确
    p_a = 2;    // 错误
    

    引用作为返回值

    使用引用作为返回值,最大的好处在于不会产生被返回的副本,可以节省空间开销

    sample code:

    template<class T>
    T& max( T& a, T& b)
    {
        return a < b ? b : a;
    }
    

    些许总结

    • 引用的目的主要用于参数传递中,用于解决大块数据的传递效率和内存空间分配问题;
    • 引用参数可以在函数传递中不产生副本,提高效率并且也可以通过const设置常引用,保证数据不被串改;
    • 引用和指针存在一定的区别,但是推荐使用引用,因为可读性高;
  • 相关阅读:
    ASP.NET MVC 以Stream 下载文件
    ITextSharp 初次接触
    Easyui中tree组件实现搜索定位功能及展开节点定位
    lodop 打印控件的使用
    XML IList<T> TO DataSet TO DataTable 相互转换
    JSONToObejct 问题 part 1
    可以动态添加图片的轮播插件
    防止机器注册
    sqlServer 取每组的前几条数据
    log4net 动态设定日志文件名
  • 原文地址:https://www.cnblogs.com/zuixime0515/p/12799315.html
Copyright © 2011-2022 走看看