【发布时间】:2016-01-19 08:44:17
【问题描述】:
#inlcude<iostream>
using namespace std;
int & change(int);
int a[5]={10,20,30,40,50};
int main()
{
int i;
for(i=0;i<5;i++)
change(i)=a[i]+5;
for(i=0;i<5;i++)
cout<<" "<<a[i]<<endl;
}
int & change(int i)
{
return a[i];
}
它有效。我们如何才能对左侧起作用?为什么它没有给我错误 lvalue is required?
请解释一下它是如何工作的以及引用变量如何在函数中返回?
【问题讨论】:
-
您认为是什么问题?
change(i)产生一个对 int 的引用,你可以分配给一个引用就好了。 -
它像指针一样工作吗?
-
您的介绍性书籍中应包含参考资料。
-
返回类型其实是一个左值。非常量引用只能绑定到左值,而您正在绑定到数组访问,这是一个左值。
标签: c++ arrays variables reference