Salve a tutti.

Sto studiando le stringe di caratteri in C e in particolare come esse vengono passate a una funzione.
Ho visto che se voglio che la funzione modifichi la stringa, nel prototipo di funzione e nell'intestazione si dovrebbe scrivere:

function(char *stringPtr)

dove stringPtr è il puntatore alla stringa. Perché non si può usare direttamente

function(char string)

dato che string, il nome della stringa, non è altro che un puntatore al primo carattere? Che cosa fa questo prototipo/intestazione?

Da quanto ho capito, una stringa è un vettore di caratteri. Però nel caso di vettori, essi possono essere passati a funzioni direttamente con il loro nome e la funzione potrà modificarli:

function(int vector)

senza dover ricorrere alla sintassi function(int *vectorPtr).
Questa differenza mi confonde ulteriormente le cose...

Grazie anticipatamente!!