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!!