4

重複の可能性:
ポインターと参照パラメーターの違い?

C++ を使用しています & と * のパラメーターでの使用の違いは何ですか?

例えば:

void swap(int &a, int &b)
{
    int temp = a;
    a = b;
    b = temp;
}

それは明らかに整数aとbを交換します。しかし、次の関数はまったく同じではないでしょうか?

void swap(int *a, int *b)
{
    int temp = *b;
    *b = *a;
    *a = temp;
}

それぞれをいつ使用するのが適切か、そしておそらくそれぞれの利点を考えていました。

4

1 に答える 1

3

ポインターと参照の違いは、ポインターは「何も」を指すことができますが、参照は指すことができないことです。2 番目のサンプルでは、​​ポインターを逆参照する前にポインターを null チェックする必要があります。参照ではそうする必要はありません。

于 2012-11-11T02:57:32.173 に答える