返回引用的函数
之前将的函数的返回值都是基本的数据类型:整型、浮点型、字符型或者布尔型。本节介绍返回引用或指针的函数。
函数可以返回引用,主要目的是可以将该函数用在赋值运算的左边。例如:
#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]的指针。