Non esattamente, essendo prova un array.In questo modo modifica quella stessa variabile prova da "asd" a "prova", poichè con &prova gli hai passato l'indirizzo di memoria.
Se invece facevi modifica(char prova[]) e facevi modifica(prova) copiavi la variabile prova del main() e la passavi alla funziona come nuova variabile ma con contenuto uguale, quindi la modifica sarebbe avvenuta solo all'interno della funzione e non avrebbe modificato la variabile originale.
Spero di essere stao chiaro[/B]
Quindi anche facendo:
Gli passi lostesso l'indirizzo di quella variabile.codice:modifica (prova);
bye