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

2020-11-26  本文已影响0人  Mc杰夫

(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++从入门到项目实践(超值版),清华大学出版社

上一篇 下一篇

猜你喜欢

热点阅读