Originariamente inviato da matrics21
Non sto rieso a capire come il c gestisce gli array.Il manuale che sto leggendo parla di gestione diversa dei puntatori,mi sto confondendo.
Aiutoo!

Inoltre qual è la differenza tra le 2 istruzioni:
strcpy(s1,s2);
s1=s2;
RISPOSTA 1 - ARRAY e PUNTATORI

L'aspetto che accomuna i puntatori e gli array è sostanzialmente il fatto che entrambi sono memorizzati in locazioni di memoria sequenziali, ed è quindi possibile agire su un array (se lo si vede come una serie di blocchi ad indirizzi di memoria sequenziali) come se si stesse agendo su un puntatore; ad esempio se dichiariamo un array "alfa" ed un puntatore "pointer":

codice:
// definisco un array ed una variabile intera
int alfa[20], x;

// creo il puntatore;
int *pointer;

// puntatore all'indirizzo di a[0]
pointer = &a[0];
// x prende il valore di pointer, cioè di a[0];
x = *pointer;
in questo modo

pointer + i "è equivalente a" a[i]

RISPOSTA 2

la strcpy serve perche' una stringa e' un array di caratteri, quindi facendo un semplice assegnamento copi solo il primo elemento dell'array (cioe' s1=s2 e' come scrivere s1[0]=s2[0]) perche' il nome "s1" identifica solo il primo elemento.