C++编程入门 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

返回引用的函数

之前将的函数的返回值都是基本的数据类型:整型、浮点型、字符型或者布尔型。本节介绍返回引用或指针的函数。

函数可以返回引用,主要目的是可以将该函数用在赋值运算的左边。例如:

#include <iostream>
using namespace std;
int a[]={1,2,3,4,5};
int & index(int i);
void main()
{
    index(2)=12;
}
int & index(int i)
{
    return a[i];
}

上面第3行代码定义了全局数组a,它在所有函数的外面定义,所以数组a的作用域是整个程序,整个程序内的所有函数都可以直接操作数组a。

第4行声明了返回引用的函数index。注意声明的方式是在inde前加了引用说明符'&'

第7行是调用了函数index,并在赋值运算的左边,也就是对index返回的引用赋值。

第9到12行是index函数的定义。

返回指针的函数

函数的返回值也可以是指针,指向某种类型的内存地址。例如上例用返回指针的函数实现:

#include <iostream>
using namespace std;
int a[]={1,2,3,4,5};
int * index(int i);
void main()
{
    int *p=index(2);
    *p=12;
    cout<<"a[2]="<<a[2]<<endl;
}
int * index(int i)
{
    int *p=&a[i];
    return p;
}

第4行声明了返回指针的函数index。注意声明的方式是在inde前加了'*'。

第9到12行是index函数的定义,它返回指向a[i]的指针。

第6行是调用了函数index,获取了指向a[2]的指针。