0

重複の可能性:
C++ のポインター変数と参照変数の違いは何ですか?
ポインターと参照

C++ で参照渡しを行うには、次の 2 つのいずれかを使用できると思います。

int f(int *x);
int g(int &x);

それらは次のように呼び出されます。

int *w;
f(w);
g(*w);

int y;
f(&y);
g(y);

fと の機能に違いはありgますか?ポインターとしても、両方の関数の内部xとしても使用できるはずです。違いは何ですか?int**xint

4

2 に答える 2

3

これのほとんどは好みの問題です。ただし、重要な違いが 1 つあります。ポインター ( *) は null 値を持つことができますが、参照は null にすることはできず、常に有効なオブジェクトを参照する必要があります。

于 2012-12-20T15:52:28.380 に答える
2

参照を NULL にすることはできないため、確認する必要はありません。それ以外の場合は、おそらく単なるシンタックス シュガーです (少なくとも単純なユース ケースの場合)。プログラムの逆アセンブルを確認してください。

于 2012-12-20T15:52:20.220 に答える