buonasera a tutti, sto imparando ad utilizzare puntatori e array e funzioni e ho un dubbio:

ho questa funzione:
codice:
void fget_point_mass(double loc[RIG], double * mass){    int j=0;
    for (j=0;j<COL;j++){
        printf("Inserisci posizione:" );
        scanf("%lf", loc);
                loc++;
    }
    printf("Inserisci la massa: ");
    scanf("%lf", mass);
}
con la chiamata:
codice:
main(){
    double location[RIG][COL];
    double mass[RIG];
    double center[RIG];
    int n; // inserito da tastiera
for (i=0;i<n;i++){
    fget_point_mass(location[i], &mass[i]);
}
allora, gli array multimensionali posso essere visti come array con sottoarray unidimensionali.
quando si passa un array in una funzione passiamo il puntatore all'array, nel mio caso il puntatore a all'iesimo sottoarray.
Il mio dubbio è :
codice:
scanf("%lf", loc);
                loc++;
come mai funziona?
io so che dato un array int a[N] NON si può fare a++ (nel main) perchè è un array.
Nel mio caso io posso incrementare loc++ perchè loc è un puntatore al primo elemento del sottoarray? cioè, loc[RIG] è un puntatore?
grazie mille!!