6

関数で 2 つの変数 (戻り値と別の変数) を変更する方法を知りたいと思っていたのですが、パラメーターの前に「&」を付けて関数を呼び出すことにつまずきました (これはパラメーターのアドレスを意味すると理解しています)。 「*」記号で参照します(これは「逆参照」であり、アドレスのオブジェクトを変更することを意味します)。

とにかく、これはすべて順調に進んでおり、友人は、変数を使用して関数を直接呼び出し、ヘッダーでその前に & を付けて変数を参照し、関数全体で通常どおり処理できると言いました。これはもっと簡単に思えますが、なぜウェブ上でそれについて詳しくないのでしょうか? あるスタイルは他のスタイルよりも正しいですか?

void foo(int &junk)  //The way the friend said
{
    junk++;
}

void oof(int *junk) //what I found, and what the internet seems full of
{
    (*junk)++;
}

int main ()
{
    int junk=1;
    std::cout << junk << "\n";
    foo(junk);
    std::cout << junk << "\n";
    oof(&junk);
    std::cout << junk;
}

これは以下を出力します:

1
2
3

だから、すべてがうまくいくと思います。

4

2 に答える 2