C++引用编程练习

#include <iostream>
using namespace std;
double vals[] = {10.1, 12.6, 33.1, 24.1, 50.0};
double& setValues(int i) {
double& ref = vals[i];
return ref; // 返回第 i 个元素的引用,ref 是一个引用变量,ref 引用 vals[i]
}
// 要调用上面定义函数的主函数
int main ()
{
cout << "改变前的值" << endl;
for ( int i = 0; i < 5; i++ )
{
cout << "vals[" << i << "] = ";
cout << vals[i] << endl;
}
setValues(1) = 20.23; // 改变第 2 个元素
setValues(3) = 70.8; // 改变第 4 个元素
cout << "改变后的值" << endl;
for ( int i = 0; i < 5; i++ )
{
cout << "vals[" << i << "] = ";
cout << vals[i] << endl;
}
return 0;

这段代码是用 C++ 编写的,主要功能是通过引用(reference)来修改数组中的元素。下面我会逐行解释这段代码的作用,帮助你理解它。


🔹整体思路

该程序定义了一个全局数组 vals,并定义了一个函数 setValues(int i),该函数返回数组中第 i 个元素的引用。通过这个引用,我们可以在 main() 函数中直接修改数组中的值。


🔹代码详解

📌1. 引入头文件和命名空间


cpp

深色版本

#include <iostream>
using namespace std;
  • #include <iostream>:引入输入输出流库,用于使用 cincout 等。
  • using namespace std;:使用标准命名空间,这样我们可以直接写 cout 而不是 std::cout

📌2. 定义全局数组


cpp

深色版本

double vals[] = {10.1, 12.6, 33.1, 24.1, 50.0};
  • 这是一个 double 类型的全局数组,包含 5 个元素。
  • 元素分别是:10.1、12.6、33.1、24.1、50.0。

📌3. 定义函数 setValues


cpp

深色版本

double& setValues(int i) {
    double& ref = vals[i];
    return ref;
}
  • 这个函数接收一个整数 i,表示数组索引。
  • double& ref = vals[i];:创建一个对 vals[i] 的引用变量 ref
  • return ref;:将这个引用返回出去。

⚠️ 重点理解:

  • 返回的是引用(double&),这意味着调用者可以直接通过这个返回值修改原数组的值。
  • 如果返回的是 double(非引用),就只是返回一个拷贝,不能用来修改原数据。

📌4. 主函数 main()


cpp

深色版本

int main ()
{
    cout << "改变前的值" << endl;
    for ( int i = 0; i < 5; i++ )
    {
        cout << "vals[" << i << "] = ";
        cout << vals[i] << endl;
    }
  • 打印数组在修改前的内容。

cpp

深色版本

    setValues(1) = 20.23; // 改变第 2 个元素
    setValues(3) = 70.8;  // 改变第 4 个元素
  • 因为 setValues(i) 返回的是 vals[i] 的引用,所以可以像 vals[i] 那样赋值。
  • setValues(1) = 20.23; 实际上是在修改 vals[1]
  • setValues(3) = 70.8; 实际上是在修改 vals[3]

cpp

深色版本

    cout << "改变后的值" << endl;
    for ( int i = 0; i < 5; i++ )
    {
        cout << "vals[" << i << "] = ";
        cout << vals[i] << endl;
    }
  • 打印修改后的数组内容。

cpp

深色版本

    return 0;
}

✅运行结果示例


深色版本

改变前的值
vals[0] = 10.1
vals[1] = 12.6
vals[2] = 33.1
vals[3] = 24.1
vals[4] = 50
改变后的值
vals[0] = 10.1
vals[1] = 20.23
vals[2] = 33.1
vals[3] = 70.8
vals[4] = 50

🧠总结

功能解释
double vals[]定义一个 double 数组
double& setValues(int i)返回数组元素的引用
setValues(1) = 20.23利用引用特性修改数组中的元素
cout输出信息到控制台

如果你还不太理解“引用”这个概念,可以把它想象成某个变量的别名。就像一个人有两个名字一样,两个名字指向的是同一个人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小范好好学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值