4

配列の最初の要素のアドレスを (再帰) 関数に渡すことに関して質問があります。

selectionSort( &b[1], size-1);

私が知っているように、アドレスが関数に渡されるとき、関数パラメータはポインタでなければなりません。selectionSortメソッドはint b[]引数として取得します。ポインターではありません。

しかし、コードは問題なく動作します。また、このコードは部分配列を生成します。1 番目の要素を渡すと、サブ配列の 0 番目の要素になりますか?

void selectionSort(int b[], int size)
{
    int temp,i;

    if (size>=1) 
    {
        for (i = 0; i < size; i++)
        {
            if (b[i]<b[0])
            {
                temp=b[0];
                b[0]=b[i];
                b[i]=temp;
            }
        }
        selectionSort( &b[1], size-1 );  
    }
}
4

2 に答える 2