美文网首页
C++引用, since 2020-11-26

C++引用, since 2020-11-26

作者: Mc杰夫 | 来源:发表于2020-11-26 21:51 被阅读0次

(2020.11.26 Thur)
引用变量是一个别名,它是某个已经存在的变量的另一个名字。一旦把引用初始化微某个变量,就可以使用该引用名称或变量名称来指向变量。

创建引用

变量名相当于变量附属在内存位置中的标签,可以把引用当成是变量附属在内存位置中的第二个标签,可通过原始名或引用名来访问变量内容

int x = 15;
int& y = x; // y是一个初始化为x的整形引用
cout<<x<<endl;
cout<<y<<endl;

引用必须初始化,无空引用,并且引用不分等级。

把引用作为函数参数

#include <iostream.h>
using namespace std;
void swap(int& x, int& y)
{
    int tmp;
    tmp = x;
    x = y;
    y = tmp;
}
void main() 
{
    int a = 100, b=300;
    cout<<'a and b: '<<a<<', '<<b<<endl;
    swap(a, b);
    cout<<'a and b after swap: '<<a<<', '<<b<<endl;
}

swap函数的形参是两个引用变量,main函数中,定义两个整形变量a和b,并初始化赋值,在调用交换函数swap时,形参(引用变量)指向实参变量单元,从而改变实参的值。

把引用作为返回值

使用引用来替代指针,会是C++程序更容易阅读和维护。C++函数可以返回一个引用,方式与返回一个指针类似。当函数返回一个引用时,则返回一个指向返回值的隐式指针。这样,函数就可以放在赋值语句的左边。

#include <iostream.h>
using namespace std;
int a[]= {2,6,8,9,10};
int& value(int i)
{
    return a[i];
}
int main()
{
    int i;
    for (i=0;i < 5; i++)
    {
        cout<<'a['<<i<<']=';
        cout<<a[i]<<endl;
    }
    value(1) = 10;
    value(3) = 20;
    cout<<'after reference'<<endl;
    for (i=0;i < 5; i++)
    {
        cout<<'a['<<i<<']=';
        cout<<a[i]<<endl;
    }
 return 0;
}

先定义了全局数组a,并初始赋值,定义一个int型的引用函数value(),定义了一个整形的形参i,该函数的返回值应该是引用类型的数据。在main()函数中,使用for循环,先遍历原数组a,再调用函数value(),修改数组a中的元素,并返回第i个元素的引用。最后循环打印a。

Reference

1 聚慕课教育研发中心 编著,C++从入门到项目实践(超值版),清华大学出版社

相关文章

  • C++引用, since 2020-11-26

    (2020.11.26 Thur)引用变量是一个别名,它是某个已经存在的变量的另一个名字。一旦把引用初始化微某个变...

  • 2018-09-26

    命名空间 auto(since C++11) 引用c++==(附注:java里的变量都是reference)== ...

  • C++函数, since 2020-11-26

    (2020.11.26 Thur) 函数的定义、声明和调用 格式如下 <函数返回类型> <函数名> (<形式参数表...

  • 第一周(Geek Band)

    C++程序设计(兼谈对象模型) 主要课题(since c++ 11): variadic template(可变参...

  • c++学习文档-更新于2020年12月05日

    c++学习文档汇总 [TOC] c++ primer部分 c++学习笔记 引用(左值引用) int &ref...

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • [C++之旅] 4 C++的引用

    [C++之旅] 4 C++的引用 基本数据的引用 apple_a为apples的引用,修改apple_a等同于修改...

  • C++知识点

    C++基本方法: C++ memcpy C++基本特性: C++引用(vs指针) C++指针 C++封装: 将...

  • C++ 引用传递的学习

    C++ 引用与引用作为函数的参数C++函数的三种传递方式为:值传递、指针传递和引用传递 C++ 上课习题 刘月林2...

  • C++右值引用

    C++ 右值引用译

网友评论

      本文标题:C++引用, since 2020-11-26

      本文链接:https://www.haomeiwen.com/subject/mnnziktx.html