不同文件中的函数无法正常工作

时间:2013-03-04 16:33:16

标签: c++ function-call

我制作了一个调用此函数的程序。我知道这是因为“Int Strength已被调用”出现在输出框中。但是,它不会改变我告诉它要做的值。 我希望它从main()获取整数值,然后使用它们并返回新值。 我使用的头文件只包含“int strength(int a,int s,int i)”

int strength(int a, int s, int i)
{
    using namespace std;
    cout << "Int Strength has been called" << endl;
    a = a + i;
    s = s - i;
    return a;
    return s;
}

3 个答案:

答案 0 :(得分:7)

多个错误。首先,如果您希望修改参数(更准确地说,修改在函数范围之外有效),您必须通过引用传递值:

int strength(int &a, int &s, int &i)

其次,您似乎关注return a; return s;返回两个值。它没有 - 遇到的第一个return立即退出该函数。

答案 1 :(得分:2)

值仅在函数内更改。变量通过值而不是引用传递。 使用引用作为参数。

 int strength(int& a, int& s, int& i)

答案 2 :(得分:1)

你正在经历价值。您需要pass a pointer到调用者中分配的包含您要修改的数据的内存。

void strength(int *a, int *s, int i)
{
    using namespace std;
    cout << "Int Strength has been called" << endl;
    *a += i;
    *s -= i;
}

然后这样称呼它:

a = 1;
s = 2;
i = 3;

strength(&a, &s, i);