関数における配列値の受け渡しの異常
複雑なクラス インスタンスを関数に渡すことができるにもかかわらず、配列を値で渡すことは依然として不可解です。なぜそうなるのか?
歴史的ルーツ
根本的な理由は歴史的なものです。 「関数に渡されると配列はポインタに分解される」という単純化されたルールは、関数内で配列を処理するための便利な解決策として存続しています。
配列コピーの複雑さ
配列のコピーは面倒で、不明確なプロセスになる可能性があります。動作はパラメータの型と関数の宣言によって異なります。
間接的な値の受け渡し
配列を値で直接渡すことはできませんが、間接的な値の受け渡しでも操作は可能です。関数内の配列。次の例を考えてみましょう。
struct A { int arr[2]; }; void func(struct A);
構造体 A のインスタンスを func() に渡すと、その配列が値で間接的に渡されます。関数内では、元の配列を変更せずに配列を操作できます。
以上が関数で値によって配列を渡すことができないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。