ホームページ  >  記事  >  バックエンド開発  >  C++ 参照とポインター パラメーターの受け渡しを使用するにはどうすればよいですか?

C++ 参照とポインター パラメーターの受け渡しを使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-04-12 22:21:011162ブラウズ

C の参照とポインターはどちらも関数パラメーターを渡す方法ですが、違いがあります。リファレンスは変数のエイリアスです。リファレンスを変更すると元の変数が変更され、ポインタには変数のアドレスが格納されます。ポインタ値を変更しても元の変数は変更されません。参照またはポインターの使用を選択する場合は、元の変数を変更する必要があるかどうか、NULL 値を渡す必要があるかどうか、パフォーマンスに関する考慮事項などの要素を考慮する必要があります。

如何使用 C++ 引用和指针传参?

C での参照およびポインター パラメーター受け渡しガイド

C では、参照とポインターは関数パラメーターを渡すための 2 つの強力なツールです。これらは、関数内の呼び出し関数の変数を変更する方法を提供します。

参照

参照は、別の変数に別名を提供する C データ型です。参照が作成されると、それに対する変更は元の変数に反映されます。

構文:

Type& reference_variable = original_variable;

例:

int x = 10;
int& ref_x = x;

ref_x++; // 等同于 x++
cout << x << endl;  // 输出:11

ポインタ

ポインタは C データ型で、別の変数のアドレスを格納します。プリミティブ変数には、ポインターを逆参照することでアクセスできます。

文法:

Type* pointer_variable = &original_variable;

例:

int y = 10;
int* ptr_y = &y;

*ptr_y++; // 等同于 y++
cout << y << endl;  // 输出:11

パラメータの違い

##特長参考値ポインタ#伝送方式参考値アドレスのコピー元の変数の変更元の変数の変更元の変数またはアドレスを変更できますアクセスコスト低 (直接アクセス)高 (逆参照が必要)メモリ割り当てなし#定数参照#利用可能#利用不可OK実用的なケース - 関数での値交換 使用値交換を実装するための参照:
#動的メモリの割り当て
#null 値を渡す No
void swap_by_ref(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}

ポインタを使用して値交換を実装する:

void swap_by_ptr(int* a, int* b) {
  int temp = *a;
  *a = *b;
  *b = temp;
}
パラメータを渡すメソッドを選択します

参照またはパラメータを渡すときは、次の要素を考慮してください:

元の変数を変更する必要があるかどうか:

必要に応じて、参照を使用します。

    null 値を渡す必要があるかどうか:
  • 必要に応じて、ポインターを使用します。
  • パフォーマンスに関する考慮事項:
  • 元の変数に頻繁にアクセスする必要がある場合は、参照を使用してください。

以上がC++ 参照とポインター パラメーターの受け渡しを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。