2016-09-28 5 views
2

で裸の配列を渡すことによって意味する何を、私は次のように宣言された関数に遭遇しました:いくつかの古いコードはC++

void f(int (&a)[5]); 

私は、アレイが「裸」であると言われてきました。どういう意味ですか?手段int(&a)[5]

答えて

1

タイプint (&a)[5]は、「の配列への参照(名前はa)」を意味します。この型を使用すると、関数の配列を最初の要素へのポインタに壊さずに配列に渡すことができます。

関数パラメータとしてintへのポインタの代わりに5-intの参照を使用すると、情報を失うことなく配列を渡すことができます。 std::begin(a)std::end(a)のようなものは、配列への参照では動作しますが、intへのポインタでは動作しません。一方、動的に割り当てられた配列を持つ配列への参照を使用することは不可能です。

1
void f(int (&a)[5]); 

は真にサイズ5の配列への参照であり、他のサイズの配列を渡すことはできません。

関連する問題