Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将引用变量返回到函数中? #包括 使用名称空间std; 内部和变更(int); int a[5]={10,20,30,40,50}; int main() { int i; 对于(i=0;i_C++_Arrays_Variables_Reference - Fatal编程技术网

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的引用,您可以很好地分配给引用。它像指针一样工作吗?引用应该在您的入门书中介绍。返回类型实际上是一个左值。非常量引用只能绑定到左值,您绑定到一个数组访问,该数组访问是一个左值。数组不包含对的引用值。您可以检索对值的引用。数组不包含对值的引用。您可以检索对值的引用。