consideriamo il vettore vett[n]

per passarlo come parametro a una funzione generica, nella dichiarazione della funzione, io farei:

void funz ( int *ptr){...}

però ho visto sul libro che si può anche fare

void funz ( int vett[]){...}

quest'ultimo caso non mi è molto chiaro, nel senso con le parentesi "[" "]" io passo solitamente un valore.
forse è dato dal fatto che le parentesi quadre siano vuote e dalla convenzione del C di passare sempre i vettori per riferimento?

potrei dare anche così, quindi?

void funz ( int vett[0]){...}

?

grazie