1. ホーム
  2. c++

[解決済み] なぜ、配列は値で関数に渡すことができないのですか?

2022-03-09 06:19:36

質問

複雑なクラスインスタンスは関数に渡せるようですが、なぜ配列は関数に渡せないのでしょうか?

どうすれば解決するの?

原点は歴史にある。問題は、「配列は関数に渡されるとポインタに分解される」というルールが単純であることです。

配列のコピーは、パラメータや関数宣言の違いで動作が変わってくるので、ちょっと複雑でよくわからないですよね。

なお、値による間接的な受け渡しはまだ可能です。

struct A { int arr[2]; };
void func(struct A);