C++ 如何将引用变量返回到函数中? #包括 使用名称空间std; 内部和变更(int); int a[5]={10,20,30,40,50}; int main() { int i; 对于(i=0;i
您的数组由值上的引用组成。您的C++ 如何将引用变量返回到函数中? #包括 使用名称空间std; 内部和变更(int); int a[5]={10,20,30,40,50}; int main() { int i; 对于(i=0;i,c++,arrays,variables,reference,C++,Arrays,Variables,Reference,您的数组由值上的引用组成。您的更改(i)将引用返回到值,并且在您修改它之后,您的数组由值上的引用组成。您的更改(i)将引用返回到值,并且在您修改它之后,您将返回一个左值 非常量引用只能绑定到左值。您正在返回对内存中数组的引用。这是一个左值。因此它可以工作 这是行不通的: #inlcude<iostream> using namespace std; int & change(int); int a[5]={10,20,30,40,50}; int main() {
更改(i)
将引用返回到值,并且在您修改它之后,您的数组由值上的引用组成。您的更改(i)
将引用返回到值,并且在您修改它之后,您将返回一个左值
非常量引用只能绑定到左值。您正在返回对内存中数组的引用。这是一个左值。因此它可以工作
这是行不通的:
#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];
}
7没有内存地址,它是一个常量。它不会绑定到返回类型。您正在返回一个左值 非常量引用只能绑定到左值。您正在返回对内存中数组的引用。这是一个左值。因此它可以工作 这是行不通的:
#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];
}
7没有内存地址,它是一个常量。它不会绑定到返回类型。这里,change(i)
通过引用返回类型int
的值
在C++中通过引用返回值
<> > C++程序可以通过引用而不是指针来更容易地读取和维护(没有分段错误)。C++函数可以返回指针的方式类似地返回引用。
当函数返回一个引用时,它返回一个指向其返回值的隐式指针。这样,函数就可以在赋值语句的左侧使用。因此change(i)=a[i]+5;
是一个可接受且正确的语句
然而,指针和引用之间的一个关键区别是引用不能为空,而指针可以。声明引用时必须初始化引用
int & change(i) {
return 7;
}
这里,change(i)
通过引用返回类型为int
的值
在C++中通过引用返回值
<> > C++程序可以通过引用而不是指针来更容易地读取和维护(没有分段错误)。C++函数可以返回指针的方式类似地返回引用。
当函数返回一个引用时,它返回一个指向其返回值的隐式指针。这样,函数就可以在赋值语句的左侧使用。因此change(i)=a[i]+5;
是一个可接受且正确的语句
然而,指针和引用之间的一个关键区别是引用不能为空,而指针可以。声明引用时必须初始化引用
int & change(i) {
return 7;
}
你认为问题出在哪里?
change(一)
生成对int的引用,您可以很好地分配给引用。它像指针一样工作吗?引用应该在您的入门书中介绍。返回类型实际上是一个左值。非常量引用只能绑定到左值,而您绑定到一个数组访问,这是一个左值。您认为问题出在哪里>更改(i)生成对int的引用,您可以很好地分配给引用。它像指针一样工作吗?引用应该在您的入门书中介绍。返回类型实际上是一个左值。非常量引用只能绑定到左值,您绑定到一个数组访问,该数组访问是一个左值。数组不包含对的引用值。您可以检索对值的引用。数组不包含对值的引用。您可以检索对值的引用。