C++函数返回引用问题

2024-12-05 12:56:53
推荐回答(4个)
回答1:

在main中开头加一句int &index(int);,或者把函数index的定义提前到main前面就行了……C/C++规定所有变量和函数必须先声明后引用,前述两种方法都是在进行函数index的声明,而写在main后面的函数被认为是没有声明过的,所以你编译不过。“引用”是C++的一种类型,它是某个变量的别名,比如int a,&p=a;这就是给a又起了个名字叫p,使用p和使用p就是一样的了。C++为“引用“赋于了新的内涵:当函数的形式参数使用“引用类型”时,函数内对“引用”的操作可以改变原变量的值,而用变量类型作形式参数时是拷贝传值,没有这种优势。返回”引用“的函数在函数名前加一个&,再前面是类型名,比如int &index()是返回一个int型“引用”,因为“引用”是int型某变量的别名,所以返回值可以直接赋给int型变量。

回答2:

#include
using namespace std;
int a[]={1,3,5,7,9};

int &index(int i)
{
return a[i];
}
int main()
{ index(2)=25;
cout< return 0;}

1.先要定义函数 index(), 之后才能调用; 放前面就可以了,我已试过!
2. 引用作为返回值 很少这么用法,这是C++的令人费解的地方,
引用就是以地址表示单元的一种变量,返回引用就相当于返回一个单元,
用来做赋值语句的左值,一般人很难理解噢。
index(2)=2 ;
左边称左值 ,表示 全局数组单元 a[2],相当于 a[2]=2;
这种“引用”其它计算机语言都没有这种功能。

回答3:

#include
using namespace std;
int a[]={1,3,5,7,9};
int &index(int i);//这里需要申明一下 否则main不能调用index函数
int main()
{
     index(2)=25;
     cout<     return 0;
}
int &index(int i)
{
    return a[i];
}

返回引用:

1)主函数main的返回值:这里提及一点,返回0表示程序运行成功。

2)返回非引用类型:函数的返回值用于初始化在跳用函数出创建的临时对象。用函数返回值初始化临时对象与用实参初始化形参的方法是一样 的。如果返回类型不是引用,在调用函数的地方会将函数返回值复制给临时对象。且其返回值既可以是局部对象,也可以是求解表达式的结果。

3)返回引用:当函数返回引用类型时,没有复制返回值。相反,返回的是对象本身。

回答4:

int &index(int i)
{
return a[i];
}

bug bug bug
不能返回临时变量的引用