这道C++程序题目的答案我知道了 但是我不知道是怎么来的 希望大家帮我详细的解答下 小弟先谢了!

来源:百度知道 编辑:UC知道 时间:2024/05/29 15:12:41
#include <iostream>

using namespace std;

int a[ ]={2,4,6,8,10};
int &index(int i){
return a[i];
}

int main( ){
int I;
index(3)=12;
for(I=0;I<=4;I++)
{cout<<a[I] <<" ";}
system("pause");
return 0;
}

结果是2 4 6 12 10
但是这个数字是怎么来的 希望高手能详细帮我解答下 小弟十分感谢 本人C++初学者 - -||.

如果不仔细看,会认为index(3)返回的是a[3]的值8,实际上不是这样的。

index(3)的返回值不是a[3]的值【8】,而是a[3]这个内存地址。原因是 index 函数在定义时是定义为 &index(指针、地址型) 而不是普通的 index(数据、整数型)。

index(3)=12 的功能也就是把12传送给 a[3]【或者说是a[3]所代表的内存单元】。

最后在输出结果时,是用cout,而且是依次把a[0] a[1] a[2] a[3] a[4]和空格传送给cout,所以输入就是【2空格4空格6空格12空格10空格】了。

至于后面的system("pause") 和 return 就已经不重要了。

这个挺简单的啊
index(3)本来的值是8,而index(3)=12后原来的8就被12代替了
然后用一个for语句依次输出:
a[0]=2
a[1]=4
a[2]=6
a[3]=12
a[4]=10
即结果是: 2 4 6 12 10