C ++ * vs [] como parámetro de función

Cuál es la diferencia entre:

void foo(item* list)
{
    cout << list[xxx].string;
}

y

void this(item list[])
{
    cout << list[xxx].string;
}

Suponiendo que el artículo es:

struct item
{
    char* string;
}

Con el puntero apuntando al primero de una matriz de caracteres

ylist es sólo una serie de elementos ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta