Sommario:
Video: Programmazione in C : le basi per creare programmi 2024
Si può pensare alla struttura del linguaggio di programmazione C come a multivariabile, oa più variabili in uno solo. Utilizzi le strutture per archiviare o accedere a informazioni complesse. In questo modo, puoi mantenere varie variabili int, char, float e persino array, tutto in un unico pacchetto.
Nozioni di base su struct
Una struttura non è un tipo di variabile. Invece, pensala come una cornice che contiene più tipi di variabili. In molti modi, una struttura è simile a un record in un database. Ad esempio:
Nome Età Debito del gioco d'azzardo
Questi tre elementi possono essere campi in un record del database, ma possono anche essere membri in una struttura: il nome sarebbe una stringa; Età, un intero; e Debito da gioco, un valore in virgola mobile senza segno. Ecco come un record del genere apparirebbe come una struttura in C:
struct record {char name [32]; int età; float debito;};
struct è una parola chiave in linguaggio C che introduce, definisce o crea una nuova struttura.
record è il nome della nuova struttura creata.
All'interno delle parentesi graffe si collocano i membri della struttura, le variabili contenute nella struttura nominata. Il tipo di struttura del record contiene tre variabili membro: un nome stringa, un'età con nome int e un valore float, debito.
Per usare la struttura, devi dichiarare una variabile di struttura del tipo di struttura che hai creato. Ad esempio:
struct record human;
Questa riga dichiara una nuova variabile del tipo di struttura del record. La nuova variabile è denominata human .
Le variabili di struttura possono anche essere dichiarate quando si definisce la struttura stessa. Ad esempio:
struct record {nome char [32]; int età; debito fluttuante;} umano;
Queste istruzioni definiscono la struttura dei record e dichiarano una variabile della struttura del record, umana . È inoltre possibile creare più variabili di quel tipo di struttura:
struct record {char name [32]; int età; float debito;} bill, mary, dan, susie;
In questo esempio vengono create quattro variabili di struttura record. Ogni variabile ha accesso ai tre membri definiti nella struttura.
Per accedere ai membri in una variabile di struttura, si usa un punto, che è l'operatore membro . Collega il nome della variabile della struttura con un nome membro. Ad esempio:
printf ("Vittima:% sn", nome della fattura);
Questa istruzione fa riferimento al membro del nome nella variabile di struttura fattura . Un array di caratteri, può essere utilizzato nel codice come qualsiasi altro array di caratteri. Altri membri nella variabile struttura possono essere utilizzati come le loro controparti individuali:
dan.età = 32;
Come riempire una struttura
Come con altre variabili, è possibile assegnare valori a una variabile di struttura quando viene creata. È necessario innanzitutto definire il tipo di struttura e quindi dichiarare una variabile di struttura con i relativi valori predefiniti dei membri. Assicurarsi che i valori preimpostati corrispondano all'ordine e al tipo di membri definiti nella struttura, come mostrato in Dichiarazione di una struttura inizializzata.
DICHIARARE UNA STRUTTURA INIZIALIZZATA
#include int main () {struct president {char name [40]; int anno;}; struct president first = {"George Washington", 1789}; printf ("Il primo presidente era% sn", primo nome); printf ("E 'stato inaugurato in% dn", primo, anno); return (0);}
Exercise 1 : Crea un nuovo programma digitando il codice sorgente da Dichiarazione di una struttura inizializzata nell'editor. Costruisci ed esegui.
Puoi anche dichiarare una struttura e inizializzarla in una istruzione:
struct president {char name [40]; int anno;} first = {"George Washington", 1789};
Esercizio 2 : Modificare il codice sorgente dall'esercizio 1 in modo che la struttura e la variabile siano dichiarate e inizializzate come un'unica istruzione.
Sebbene tu possa dichiarare una struttura e inizializzare una variabile di struttura come appena mostrato, puoi farla franca solo una volta. Non è possibile utilizzare la tecnica per dichiarare la seconda variabile di struttura, che deve essere eseguita nel modo tradizionale, come mostrato in Dichiarazione di una struttura inizializzata.
Esercizio 3 : Aggiungi un'altra variabile della struttura presidenziale, in secondo luogo, al codice, inizializzando quella struttura con informazioni sul secondo presidente, John Adams, che è stato inaugurato nel 1797. Visualizza i contenuti di entrambe le strutture.
Come creare una matrice di strutture
Creare singole variabili di struttura, una dopo l'altra, è noioso e dispendioso come creare una serie di qualsiasi tipo di variabile individuale. La soluzione per più strutture è la stessa di più variabili individuali: una matrice.
Un array di struttura è dichiarato in questo modo:
struct scores player [4];
Questa dichiarazione dichiara una serie di strutture di punteggi. L'array è denominato player e contiene quattro variabili di struttura come elementi.
Si accede alle strutture dell'array usando una combinazione di notazione di matrice e struttura. Ad esempio:
player [2]. nome
La variabile nella riga precedente accede al membro del nome nel terzo elemento dell'array della struttura del giocatore. Sì, questo è il terzo elemento perché il primo elemento dovrebbe essere referenziato in questo modo:
player [0]. nome
Le matrici iniziano la numerazione con l'elemento 0, non con l'elemento 1.
La riga 10 in Array di strutture dichiara una matrice di quattro strutture di punteggi. L'array è chiamato giocatore. Le righe da 13 a 19 riempiono ciascuna struttura dell'array. Le righe dalla 21 alla 27 mostrano i valori dei membri di ciascuna struttura.
ARRAYS OF STRUCTURES
#include int main () {struct scores {char name [32]; punteggio int;}; struct scores player [4]; int x; for (x = 0; x <4; x ++) {printf ("Enter player% d:", x + 1); scanf ("% s", lettore [x].nome); printf ("Inserisci il loro punteggio:"); scanf ("% d", & player [x]. score);} puts ("Player Info"); printf ("# tNametScoren"); per (x = 0; x <4; x ++) {printf ("% dt% st% 5dn", x + 1, giocatore [x]. nome, giocatore [x]. punteggio);} ritorno (0);}
Esercizio 4 : Digita il codice sorgente da Arrays of Structures nel tuo editor. Costruisci ed esegui il programma. Cerca di mantenere i punteggi a meno di cinque cifre in modo che si allineino correttamente.
Esercizio 5 : Aggiungi codice ad Array di strutture in modo che la visualizzazione delle strutture sia ordinata con il punteggio più alto elencato per primo. Si, puoi fare questo. L'ordinamento di una matrice di strutture funziona esattamente come l'ordinamento di qualsiasi altro array.
Ecco un suggerimento: la linea 27 della soluzione assomiglia a questa:
giocatore [a] = giocatore [b];
È possibile scambiare gli elementi dell'array di strutture proprio come è possibile scambiare qualsiasi elemento dell'array. Non è necessario scambiare i membri della variabile di struttura.