1

これは、より大きなもののテストケースであるため、このように書かれています。a の値が増加し続けるように、このコードを作成するにはどうすればよいでしょうか? 私のプロジェクトでは、ファイルから行を解析する関数を呼び出します。構造体の値を、関数呼び出しで設定された特定の値に設定する必要があります (関数のパラメーターは、以下のコードのようにメイン関数で初期化されました)。

int increment(int a)
{
    a++;
    return 0;
}
int main()
{
    int a =0;
    int b =0;
    while( b<5){
        increment(a);
        b++;
        cout << "a is: " << a << ". And b is: " << b << "\n";
    }
    system("PAUSE");
}

ありがとう。

4

4 に答える 4

3

インクリメントするアドレスを渡します

void increment(int *a){
  (*a)++;  
}
increment(&a);
//Using the address of operator pass in the address of a as argument
于 2013-02-10T01:18:31.667 に答える
1

ポインターを使用できます。同様の質問については、C での参照による受け渡しを参照してください。

また、インクリメント関数を変更して a のインクリメントされた値を返し、次のように main で呼び出すこともできます。

a =インクリメント(a);

于 2013-02-10T01:31:10.460 に答える
-1

値渡しaなので、 の値をa変更することはできません。

1つの解決策は次のとおりです。

int increment (int a) { return a + 1; }

次に、ループで:

a = increment(a);

別の解決策は、参照渡しa(ポインター) です。

void increment (int *a) { *a = *a + 1; }

そしてループで

increment(&a);
于 2013-02-10T01:23:02.660 に答える