如何通过使用void来传递变量中的信息

时间:2019-03-21 05:14:13

标签: c++

我是一名新编码员,我只是在缠住卡住的函数和测试变量。我的目标是创建一个函数,当您输入姓名和年龄时,它会显示“ Hello(name)You are(age)” x3,其中包含3个不同的姓名和年龄。最后,程序将显示“ Hello(name1)(name 2)(name 3)”,除了最后一部分,我已经可以使用所有内容,并且保留了名称信息。如何做到这一点。 (我使用C ++)


#include <iostream>

using namespace std;



void whatisName(string name, int age)
{
    cout << "What is thy name: " << endl;
    cin >> name;
    cout << "What is thy age: " << endl;
    cin >> age;

    cout << "Hello " << name << " You are " << age << endl;
}

void allNames(string name1, string name2, string name3 )
{
    cout << "Hello " << name1 << " " << name2 << " " << name3 << " " << endl;
}

int main()
{
string myName, myName2, myName3;
int myage, myage2, myage3;



 whatisName(myName, myage);

 whatisName(myName2, myage2);

 whatisName(myName3, myage3);

 allNames (myName, myName2, myName3);
}

2 个答案:

答案 0 :(得分:4)

通过引用传递变量。

更改:

void whatisName(string name, int age) { ..

收件人:

void whatisName(string& name, int& age) { ...

答案 1 :(得分:0)

如上所述,通过引用是您最好的选择。您希望通过引用传递的原因是,退出函数后,您的参数可能会更改。如果不通过引用传递,则退出函数

时,您的参数不会更改
    void whatisName(string name, int age){...} 

这不会更改参数名称或整数寿命。因此,如果我输入

    string a = "foo";
    int b = 16;
    whatisName(a,b)

无论函数a =“ foo”和b = 16发生了什么,因为我们尚未创建通过引用传递的函数。为了解决这个问题,我们转到函数声明并像

一样更改它
    whatisName(string &name,int& age)

现在将对其进行更改,以便可以修改该函数中的参数。