重複の可能性:
C++ のポインター変数と参照変数の違いは何ですか?
* と & を変数名に適用した場合の意味は何ですか?
&
この状況で「 」の意味を理解しようとする
void af(int& g)
{
g++;
cout<<g;
}
この関数を呼び出して変数名を渡すと、通常と同じように動作しますvoid(int g)
。あなたが書いたとき、&g
それは変数のアドレスを渡していることを意味しますg
。しかし、このサンプルではどういう意味ですか?
重複の可能性:
C++ のポインター変数と参照変数の違いは何ですか?
* と & を変数名に適用した場合の意味は何ですか?
&
この状況で「 」の意味を理解しようとする
void af(int& g)
{
g++;
cout<<g;
}
この関数を呼び出して変数名を渡すと、通常と同じように動作しますvoid(int g)
。あなたが書いたとき、&g
それは変数のアドレスを渡していることを意味しますg
。しかし、このサンプルではどういう意味ですか?
これは、変数を参照渡ししていることを意味します。
実際、型の宣言では、次のように参照を意味します。
int x = 42;
int& y = x;
x
と呼ばれるへの参照を宣言しますy
。
これは、関数が変数の値ではなく、変数へのアドレス(または参照) を&
受け入れることを意味します。
たとえば、次の違いに注意してください。
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;
}