C 関数では、参照パラメータは変数アドレスを渡し、パラメータの変更は元の変数に影響しますが、ポインタ パラメータはアドレスへのポインタを渡し、パラメータの変更は元の変数には影響しません。 。
#C 関数における参照パラメータとポインタ パラメータの違い
C では、関数は参照パラメータまたはポインタ パラメータを受け入れることができます。 。どちらも変数のアドレスを渡すために使用されますが、それらの間にはいくつかの重要な違いがあります。参照パラメータ
参照パラメータは、シンボル& を通じて変数のアドレスを渡します。基本的に変数自体を渡します。つまり、参照パラメーターに加えられた変更は元の変数に反映されます。
コード例:
void swap(int& a, int& b) { int temp = a; a = b; b = temp; } int main() { int x = 5; int y = 10; swap(x, y); // 交换 x 和 y 的值 cout << x << " " << y << endl; // 输出:10 5 }
ポインタ パラメータ
ポインタ パラメータはシンボルを介して変数を渡します。*住所。基本的に、ポインタを変数のメモリ アドレスに渡します。これは、ポインタ パラメータに加えられた変更が元の変数に反映されないことを意味します。
コードサンプル:
void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int x = 5; int y = 10; swap(&x, &y); // 交换 x 和 y 的值 cout << x << " " << y << endl; // 输出:5 10 }
相違点の概要
特徴 | 参照パラメータ | ポインタパラメータ |
---|---|---|
参照変数アドレス | ポインタアドレスを渡す | |
元の変数を変更 | いいえ元の変数を変更する | |
ポインタ サイズ | 参照サイズ | |
実際のパラメータを渡す | 大きなオブジェクトまたは複雑な構造を渡す |
実践的なケース
ニーズを考慮する2つの要素を交換する関数。参照パラメータを使用する:
void swap(int& a, int& b) { int temp = a; a = b; b = temp; }
ポインタ パラメータを使用する:
void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; }
以上がC++ 関数の参照パラメータとポインタ パラメータの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。