Video: Fondamenti di programmazione con Java - 9 - Array bidimensionali 2024
Se si dispone di un array e non si desidera che il suo contenuto cambi, è possibile renderlo un array costante. Le seguenti righe di codice, trovate nell'esempio di Array05, dimostrano questo approccio:
const int Permanent [5] = {1, 2, 3, 4, 5}; cout << permanente [1] << endl;
Questo array funziona come qualsiasi altro array, tranne che non è possibile modificare i numeri al suo interno. Se si aggiunge una linea come la seguente riga, si ottiene un errore del compilatore, poiché il compilatore è consapevole delle costanti:
Permanente [2] = 5;
Ecco l'errore che si prova quando si prova in Code:: Blocchi:
errore: assegnazione della posizione di sola lettura 'Permanente [2]'
Che ne è di un array costante di non convertitori? Puoi farlo? Bene, a volte - a seconda del compilatore. È orribile come il seguente codice (trovato nell'esempio di Array06) - e non è uno standard ANSI! - sei autorizzato a farlo con le versioni precedenti dei compilatori gcc. (Microsoft Visual C ++ e Borland C ++ Builder non lo consentono e il codice:: Il compilatore di blocchi presenta un errore: messaggio di errore di assegnazione dell'array non valido.)
int NonConstant [5] = {1, 2, 3, 4, 5}; int OtherList [5] = {10, 11, 12, 13, 14}; OtherList = NonConstant;
In altre parole, questa terza riga sta dicendo: "Dimentica ciò che OtherList indica; invece, fai in modo che punti al primo array {1, 2, 3, 4, 5}! "Ora, veramente non dovrebbe scrivere codice come questo (ricorda, mantieni le cose semplici e comprensibili), quindi se vuoi evitare questo tipo di cose, puoi rendere costante la matrice:
< ! --3 ->const int NonConstant [5] = {1, 2, 3, 4, 5}; const int OtherList [5] = {10, 11, 12, 13, 14}; OtherList = NonConstant;
Ora, quando il compilatore arriva alla terza riga, ti dà un errore:
errore: assegnazione della variabile di sola lettura 'OtherList'
Ma potresti notare che il modo in cui hai creato la costante dell'array era nello stesso modo in cui hai reso i suoi elementi costanti nel codice che veniva prima di questo esempio. Oops! Di cosa si tratta? Risulta ci sono alcune regole.
Il seguente elenco descrive le regole, in dettaglio, per rendere costante la matrice:
-
Se si desidera rendere costante una matrice, è possibile precedere il suo tipo con la parola const. Quando lo fai, il nome dell'array è costante e gli elementi all'interno dell'array sono anche costanti. Pertanto non è possibile avere una matrice costante con elementi non costanti, né si può avere una matrice non costante con elementi costanti.
-
La nozione di una matrice non costante esiste solo in gcc e non è standard ANSI.
Se vuoi davvero ottenere una tecnica, lo standard ANSI C ++ dice che quando inserisci la parola const davanti a una dichiarazione di array, non stai rendendo costante la matrice; stai dicendo che l'array contiene solo costanti.
Tuttavia, quando si utilizza const in questo modo, la maggior parte dei compilatori rendono costante anche la matrice. Ma va bene; le persone non dovrebbero prendere il nome di un array e copiarlo in qualcos'altro. Non è un buon stile di programmazione, e richiede solo bug - o, per lo meno, confusione - in seguito.