26 febbraio 2013In questa ottava parte del corso completo di C tenuto su questo sito, vi parlo di array, stringhe e strutture: pilastri fondamentali del C.
ARRAY DI INTERI Un array è una collezione finita di n variabili dello stesso tipo, ognuna identificata da un indice, che va da 0 a n-1. Si possono definire due dimensione per ogni array:
Per predisporre spazio in memoria per un array di interi, si può agire in diversi modi: 1) int arrayNum[4]; Per riempire un array si può procedere così:
1) int arrayNum[] = {1,2,3,4}; LE STRINGHE (ARRAY DI CHAR)
Il tipo stringa non esiste in C, e questa è una grave mancanza, ma si può ovviare a questa mancanza costruendosi da soli questo tipo di formato, utilizzando gli array di caratteri. Le stringhe si possono definire e riempire in questo modo: 1) char nome[20]; E' importantissimo dire che qualsiasi array di caratteri (stringa) deve finire con uno speciale simbolo terminatore: " \0 ", che denota appunto la fine della stringa, e se viene omesso provoca tanti errori; se per esempio voglio inserire in una stringa il nome "Mario", che è composto da 5 lettere, nella dichiarazione dovrò scrivere:
char nome[6]; In sostanza, se riempio la mia stringa nome con "Mario", ho questa situazione:
nome[0] = "M"; Con gli array si possono fare tantissime cose molto utili per i nostri programmi; adesso vi mostro un esempio di utilizzo degli array:
Se lanciato, questo è il risultato:
Gli array di interi si possono confrontare con gli operatori "==, <=, >=, <, >, !=", mentre le stringhe ovviamente no; per confrontare le stringhe, o si procede scandendo ad uno ad uno ogni elemento dell'array, o si utilizzano certe funzioni già messe a disposizione dalle librerie del C. La libreria in questione è la <string.h>, che comprende tra le altre funzioni:
STRUTTURE
Una struttura è una collezione finita di dati anche eterogenei (non necessariamente dello stesso tipo), ognuna identificata da un nome; si definisce così: Faccio adesso un esempio di come utilizzare strutture per creare insiemi di dati differenti organizzati bene, e accessibili in modo estremamente facile; una struttura può essere assegnata ad un'altra, e le strutture vengono sempre passate per valore. Però prima di fare l'esempio, voglio brevemente introdurre il "typedef", che semplifica e velocizza la gestione delle strutture; invece di assegnare un'etichetta alla struttura, si scrive typedef struct { .. } ecc..
Se viene lanciato con i seguenti dati, il risultato è questo:
Ovviamente la potenzialità delle strutture la si vede quando si creano array di strutture, senza ad esempio sapere la mole di registrazioni che bisognerà effettuare; ma questi discorsi li riprenderemo quando parleremo di allocazione dinamica della memoria. Ora vi faccio solo vedere brevemente come dichiarare un array di strutture non dinamico, e poi esercitatevi voi ad utilizzarli al meglio! (Supponiamo che la struct si chiami persona).
persona arrayPersone[4]; Consiglio: per il nome del primo, arrayPersone[0].nome ecc... Vi lascio qui il codice dell'esercizio sugli array e sulle strutture: ![]()
|
Social Aiutate a diffondere il sito, cliccando qui Segui @WInformatic Autore Salve a tutti! Mi chiamo Pumo Matteo. Per saperne di più: Biografia Categorie
|