ホームページ >バックエンド開発 >C++ >C はオブジェクトを値で渡しますか?それとも参照で渡しますか?

C はオブジェクトを値で渡しますか?それとも参照で渡しますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-05 00:15:121028ブラウズ

Does C   Pass Objects by Value or by Reference?

C は値または参照でオブジェクトを渡しますか?

質問:

C では、オブジェクトが値によって渡されるか、関数への参照によって渡されるかについては、いくつかのあいまいさがあるようです。整数や浮動小数点などの単純なデータ型は値によって渡されますが、配列やオブジェクトで何が起こるかは不明です。 C はオブジェクトを値で渡しますか?

答え:

C では、引数の受け渡しは主に値によって行われます。これは、引数のコピーが作成されて渡されることを意味します。機能に。ただし、参照によって引数を渡す方法があり、関数が元の変数を直接変更できるようになります。

具体的には:

  • void foo(type arg) では、引数 arg は次のようになります。値によって渡されます。これは、単純型、ポインター、クラス型に適用されます。配列の場合、配列のコピーではなく、最初の要素へのポインターが渡されます。
  • void foo(type& arg) では、引数 arg は参照によって渡されます。これにより、関数が元の変数を変更できるようになります。
  • 配列の場合、コンパイル時に配列サイズがわかっている場合は、 void foo(type (&arg)[10]) を使用して参照によって渡すことができます。

したがって、 C では、「&」参照を使用して参照渡しとして明示的に指定されない限り、オブジェクトは通常、値によって渡されます。演算子。

以上がC はオブジェクトを値で渡しますか?それとも参照で渡しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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