了解引用变量的工作方式

Understanding how reference variables work

本文关键字:工作 方式 变量 引用 了解      更新时间:2023-10-16

好吧,我在如何从void类型中提取值以使用引用变量将其带回main的问题上遇到了障碍。我已经把课本上的这一节读了好几遍,但它给出的代码片段对我来说没有意义,而且也不多。有人能解释一下,或者举一个简单的代码示例吗?

感谢

这是我的代码,应该发生的是,我应该使用我的main调用的第一个函数从用户那里提取5个测试分数。main调用的下一个函数应该调用第三个函数,该函数确定最低的测试分数,并将其从中间函数的计算中删除。

我试着运行代码(只使用文本存根和没有计算的变量(,但我的变量都显示为一个巨大的数字,这是它们可以达到的最大值,而不是它们应该显示为的用户输入。

#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int main()
{
double score1, score2, score3, score4, score5, average;
void getScore(double &);
void calcAverage(double &);
int findLowest();
getScore(score1);
getScore(score2);
getScore(score3);
getScore(score4);
getScore(score5);
calcAverage(average);
cout<<"Let's see what we have here.n"            <<score1<<endl<<score2<<endl<<score3<<endl<<score4<<endl<<score5<<endl<<average;
system("pause");
return 0;
}
void getScore(double &)
{
double score;
cout<<"Please enter a test score.";
    cin>>score;
    while(score<0 || score>100)
    {
        cout<<"Please enter a valid score.";
        cin>>score;
    }
}
void calcAverage(double &)
{
int findLowest();
double lowest;
cout<<"Yes, I'm a stub.";
lowest = findLowest();
}
int findLowest()
{
cout<<"I'm a stub too!";
return 5;
}

您的函数应该这样写:

void getScore(double &refScore) //!!
{
    //double score;
    cout<<"Please enter a test score.";
    cin>>refScore;
    while(refScore<0 || refScore>100)
    {
        cout<<"Please enter a valid score.";
        cin>>refScore;
    }
}

我想你已经明白了。。

我认为解释references概念的最佳方式是将引用视为别名。这不是100%正确的,但对初学者来说,这是一个非常好的寓言。

对引用所做的操作也会对原始对象执行

所以您所要做的就是为同一个变量定义一个替代名称

Reference是现有对象的另一个名称(别名(,因此只能引用现有对象(必须初始化(,不能重新分配给其他对象。const指针满足这些条件,并由编译器用来表示引用。希望它是清楚的。