40

重複の可能性:
C++ のポインター変数と参照変数の違いは何ですか?
* と & を変数名に適用した場合の意味は何ですか?

&この状況で「 」の意味を理解しようとする

void af(int& g)
{
    g++;
    cout<<g;
}

この関数を呼び出して変数名を渡すと、通常と同じように動作しますvoid(int g)。あなたが書いたとき、&gそれは変数のアドレスを渡していることを意味しますg。しかし、このサンプルではどういう意味ですか?

4

2 に答える 2

37

これは、変数を参照渡ししていることを意味します。

実際、型の宣言では、次のように参照を意味します。

int x = 42;
int& y = x;

xと呼ばれるへの参照を宣言しますy

于 2012-07-22T21:43:36.713 に答える
22

これは、関数が変数の値ではなく、変数へのアドレス(または参照) を&受け入れることを意味します。

たとえば、次の違いに注意してください。

void af(int& g)
{
    g++;
    cout<<g;
}

int main()
{
    int g = 123;
    cout << g;
    af(g);
    cout << g;
    return 0;
}

そしてこれ( なし&):

void af(int g)
{
    g++;
    cout<<g;
}

int main()
{
    int g = 123;
    cout << g;
    af(g);
    cout << g;
    return 0;
}
于 2012-07-22T21:47:20.350 に答える