///////////////////////////////////////////////////////
double array[5] = {100.1, 100.2, 100.3, 100.4, 100.5};
double cd = 5.2;
double &change(int i)
{
return array[i];
}
void TestConstReturnVaulefun()
{
int i;
cout<<"原始值如下: ";
for(i = 0; i < 5; i++)
cout << array[i] <<" ";
cout<<endl;
change(2) = 3.14;
change(3) = -99.99;
cout<<"修改后如下: ";
for(i = 0; i < 5; i++)
cout<<array[i]<<" ";
cout<<endl;
double c = change(1);
c = 3.5;
cout<<"修改后如下: ";
for(i = 0; i < 5; i++)
cout<<array[i]<<" ";
cout<<endl;
}
输出结果为:
原始值如下: 100.1 100.2 100.3 100.4 100.5
修改后如下: 100.1 100.2 3.14 -99.99 100.5
修改后如下: 100.1 100.2 3.14 -99.99 100.5
疑问为什么第3行不是3.5 而是100.1呢?
求原理分析