
C++函数返回引用问题
c++书上有#include<iostream>usingnamespacestd;inta[]={1,3,5,7,9};intmain(){index(2)=25;co...
c++书上有
#include<iostream>
using namespace std;
int a[]={1,3,5,7,9};
int main()
{
index(2)=25;
cout<<index(2);
return 0;
}
int &index(int i)
{
return a[i];
}
根本就不能编译啊。。
为什么。。
还有什么是返回引用啊 ,什么时候要用返回引用? 展开
#include<iostream>
using namespace std;
int a[]={1,3,5,7,9};
int main()
{
index(2)=25;
cout<<index(2);
return 0;
}
int &index(int i)
{
return a[i];
}
根本就不能编译啊。。
为什么。。
还有什么是返回引用啊 ,什么时候要用返回引用? 展开
4个回答
展开全部
在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型变量。
展开全部
#include<iostream>
using namespace std;
int a[]={1,3,5,7,9};
int &index(int i)
{
return a[i];
}
int main()
{ index(2)=25;
cout<<index(2);
return 0;}
1.先要定义函数 index(), 之后才能调用; 放前面就可以了,我已试过!
2. 引用作为返回值 很少这么用法,这是C++的令人费解的地方,
引用就是以地址表示单元的一种变量,返回引用就相当于返回一个单元,
用来做赋值语句的左值,一般人很难理解噢。
index(2)=2 ;
左边称左值 ,表示 全局数组单元 a[2],相当于 a[2]=2;
这种“引用”其它计算机语言都没有这种功能。
using namespace std;
int a[]={1,3,5,7,9};
int &index(int i)
{
return a[i];
}
int main()
{ index(2)=25;
cout<<index(2);
return 0;}
1.先要定义函数 index(), 之后才能调用; 放前面就可以了,我已试过!
2. 引用作为返回值 很少这么用法,这是C++的令人费解的地方,
引用就是以地址表示单元的一种变量,返回引用就相当于返回一个单元,
用来做赋值语句的左值,一般人很难理解噢。
index(2)=2 ;
左边称左值 ,表示 全局数组单元 a[2],相当于 a[2]=2;
这种“引用”其它计算机语言都没有这种功能。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
using namespace std;
int a[]={1,3,5,7,9};
int &index(int i);//这里需要申明一下 否则main不能调用index函数
int main()
{
index(2)=25;
cout<<index(2);
return 0;
}
int &index(int i)
{
return a[i];
}
返回引用:
1)主函数main的返回值:这里提及一点,返回0表示程序运行成功。
2)返回非引用类型:函数的返回值用于初始化在跳用函数出创建的临时对象。用函数返回值初始化临时对象与用实参初始化形参的方法是一样 的。如果返回类型不是引用,在调用函数的地方会将函数返回值复制给临时对象。且其返回值既可以是局部对象,也可以是求解表达式的结果。
3)返回引用:当函数返回引用类型时,没有复制返回值。相反,返回的是对象本身。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int &index(int i)
{
return a[i];
}
bug bug bug
不能返回临时变量的引用
{
return a[i];
}
bug bug bug
不能返回临时变量的引用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询