ポインタと参照: 関数パラメータでそれぞれをいつ使用するか?

Barbara Streisand
リリース: 2024-11-02 20:34:03
オリジナル
349 人が閲覧しました

Pointers vs. References: When to Use Each in Function Parameters?

パラメータ渡しにおけるポインタと参照

関数パラメータとしてのポインタと参照に関して、提供されるコード スニペットには機能的な類似点があります。

int foo(bar* p) {
  return p->someInt();
}
ログイン後にコピー

int foo(bar& r) {
  return r.someInt();
}
ログイン後にコピー

ただし、この 2 つの間には微妙な違いがあります:

  • Null ポインター: ポインター パラメーターでは次のことが可能です。 nullptr は渡しますが、参照パラメータには nullptr を割り当てることはできません。
  • 最適化: 場合によっては、コンパイラはポインタを介して参照パラメータを最適化し、オーバーヘッドを削減することがあります。

C では、参照は意図的にポインタを使用して明示的に実装されていません。代わりに、参照される変数の「同義語」として機能します。この概念により、ポインターが不要なコンパイラの最適化が可能になります。

ポインターと参照のその他の注目すべき違いは次のとおりです。

  • 再割り当てできません: 参照は再割り当てできませんが、
  • Address: ポインタのアドレスを取得するとポインタ自体のアドレスが返され、参照のアドレスを取得すると参照先オブジェクトのアドレスが返されます。

以上がポインタと参照: 関数パラメータでそれぞれをいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート