-2

この関数を呼び出すプログラムを作成しました。出力ボックスに「Int Strength has been called」と表示されるので、これがわかりました。ただし、私が指示した値は変更されません。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;
}
4

3 に答える 3

7

複数のエラー。まず、引数を変更する場合(より正確には、変更は関数の範囲外で有効です)、参照によって値を渡す必要があります。

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

return a; return s;次に、 2つの値を返すことを心配しているようです。そうではありません-最初returnに遭遇したものはすぐに関数を終了します。

于 2013-03-04T16:35:22.337 に答える
2

値は関数内でのみ変更されます。変数は参照ではなく値で渡されます。パラメータとして参照を使用します。

 int strength(int& a, int& s, int& i)
于 2013-03-04T16:35:29.767 に答える
1

あなたは価値を渡しています。変更したいデータを含む呼び出し元に割り当てられたメモリへのポインタを渡す必要があります。

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);
于 2013-03-04T16:35:11.140 に答える