Salve, vorrei discutere riguardo un mio dubbio sui puntatori e gli array. Per me è un argomento abbastanza delicato, infatti ci sto impiegando tanto a capire bene le cose
Allora, io studio attualmente da programmazione C di King, sono arrivato da poco all'argomento dei puntatori e i vettori e il mio dubbio riguarda al nome di un vettore. Il nome di un vettore può essere utilizzato come fosse un puntatore al primo elemento, quindi perché quando io ad esempio:
int A[]={1,2,3}
funzione(A);
faccio una chiamata a funzione utilizzando come argomento il nome di un vettore, sto passando un puntatore al primo elemento di A. Quindi se alla funzione stabilisco il paramento della funzione come:
void funzione(int *p)
for(; p< p+3; p++)
Perché non posso utilizzare l'indirizzo di base di un vettore in questo modo? Perché non potrei incrementare p se p è un puntatore che punta al primo elemento di A?
Invece posso assegnare l'indirizzo a cui punta un puntatore ad un altro puntatore e non mi segnala errori:
void funzione(int *p)
int *c=p;
for(; c< p+3; c++)
Inoltre perché non posso utilizzare l'indirizzo a cui punta c come un limite della condizione?
void funzione(int *p)
int *c=p;
for(; c< [b]c[/b]+3; c++)
E' qualche giorno che cerco di capire questi problemi, vorrei il consiglio di un esperto. Scusate se non sono stato abbastanza chiaro, ma è abbastanza difficile esprimermi su questo argomento.