C での配列の参照渡し
C では、関数の引数として配列を参照渡しすることは、変更が確実に行われるようにするために一般的に受け入れられています。関数内の配列は呼び出しコードに反映されます。しかし、最近のコンパイラ エラーにより、この慣行について疑問が生じています。
なぜ "void foo(double& bar)" は許可されないのですか?
構文 "void foo( double& bar)" は、double 配列参照を関数 foo に渡そうとします。ただし、C はこのアプローチをサポートしていません。配列は主に、個々の要素自体ではなく、参照によって渡されます。
配列を参照によって渡す適切な方法
配列を参照によって正しく渡すには、次の構文:
void foo(double (&bar)[10]);
この例では、「bar」は、渡される 10 個の要素を持つ double の配列を表します。 参照。これにより、foo 内の "bar" に加えられたすべての変更が、呼び出し元のコードでも確実に行われるようになります。
代替ソリューション
配列を参照で渡すことは、多くの場合回避することが推奨されます。不必要なコピーやパフォーマンスの問題。ただし、参照渡しの場合、配列は固定サイズである必要があることに注意することが重要です。任意のサイズの配列が必要な場合は、次の代替案を検討してください。
以上がC で配列を参照によって正しく渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。