関数内で配列を返す 質問する

関数内で配列を返す 質問する

int arr[5]関数に渡される配列がありますfillarr(int arr[]):

int fillarr(int arr[])
{
    for(...);
    return arr;
}
  1. その配列を返すにはどうすればいいでしょうか?
  2. どのように使用するのでしょうか。たとえば、ポインターを返した場合、どのようにアクセスするのでしょうか。

ベストアンサー1

この場合、配列変数は、arr暗黙的な変換によって、メモリ内の配列ブロックの先頭へのポインターとして扱うこともできます。使用している構文は次のとおりです。

int fillarr(int arr[])

これは単なる構文上の糖衣です。これを次のように置き換えても動作します:

int fillarr(int* arr)

同じ意味で、関数から返したいのは、実際には配列の最初の要素へのポインターです。

int* fillarr(int arr[])

通常の配列と同じように使用することもできます。

int main()
{
  int y[10];
  int *a = fillarr(y);
  cout << a[0] << endl;
}

おすすめ記事