buonasera a tutti, sto imparando ad utilizzare puntatori e array e funzioni e ho un dubbio:
ho questa funzione:
con la chiamata: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); }
allora, gli array multimensionali posso essere visti come array con sottoarray unidimensionali.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]); }
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 è :
come mai funziona?codice:scanf("%lf", loc); loc++;
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!!

Rispondi quotando