Domanda 1)
C'e' differenza nella dichiarazione di un array, quando il contenuto dei suoi elementi sono interi o caratteri?
Risposta 1)
Si, se il contenuto di un array e' di tipo intero, l'array ha una dimensione pari al numero di interi che intendiamo memorizzarvi dentro; se il contenuto di un array e' di tipo carattere, siamo di fatti in presenza di una stringa, e dobbiamo tenere conto del carattere di fine stringa lo '\0' , per cui in questo caso, l'array andra' dimensionato: pari al numero di caratteri che intendiamo memorizzarvi + 1, (1 appunto per contenere carattere terminatore, che in realta' e' lo 0).
esempio:
un array di 12 numeri interi si dichiara cosi': int nome_array[12];
un array di 12 caratteri si dichiara cosi': char nome_array[13];
Domanda 2)
Le stringhe si possono rappresentare oltre che con un array mono-dimensionale anche con i puntatori; come si dichiara nei due casi la stringa ?
Risposta 2)
Vero: esempio di dichiarazione stringa di 10 caratteri attraverso un array:
char nome_stringa[11];
esempio di dichiarazione stringa attraverso i puntatori:
char *nome_stringa;
qui nome_stringa e' un puntatore a carattere, precisamente punta al primo carattere della stringa. Punta significa che la variabile nome_stringa contiene l'indirizzo di memoria della cella in cui e' localizzato il primo carattere della stringa. Gli altri caratteri della stringa sono in indirizzi consecutivi,..., ecco il motivo dell'assimilazione array e puntatore a carattere.