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. 

 

Indietro