Perchè dopo la sua inizializzazione, un array, viene visto dal compilatore come un puntatore costante.
Considera questo codice:
codice:
char char_array[10] = "ciao";
char_array = "ariciao";
durante l' inizializzazione di char_array è possibile assegnare una stringa letterale ad un array quindi la prima istruzione non da errori. Siccome dopo la sua inizializzazione, char_array sarà visto come un puntatore costante, la seconda istruzione verrà letta come <<inserisci l' indirizzo di "ariciao" in char_array>> quindi si ha un errore (visto che char_array è visto come un puntatore costante quindi non è permessa una modifica dell' indirizzo a cui punta) . . .