C/Enumerazioni, strutture e unioni/Strutture: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
indicizzato |
||
Riga 1:
{{Linguaggio C}}
{{IndexItem|strutture}}
Una '''struttura''' è un insieme di una o più [[w:variabile_(informatica)|variabili]].▼
▲Una '''struttura''' è un insieme di una o più {{IndexItem|variabili}}[[w:variabile_(informatica)|variabili]].
Le variabili possono essere di qualunque tipo e vengono raggrupate sotto un unico nome.
Questo raggrupamento viene effettuato quando occorrono più variabili che hanno qualcosa in comune, un esempio pratico può essere quello di uno studente universitario. Lo studente ha tre caratteristiche principali ({{IndexItem|strutture, membri}}''membri''): Nome, Cognome, Matricola. Sarebbe utile raggrupparle insieme, le strutture permettono appunto questo raggruppamento.
È possibile considerare la struttura come un vero e proprio tipo di dati creato dall'utente, un po' come le [[Linguaggio C/Enumerazioni, strutture e unioni/Enumerazioni|enumerazioni]].
== Sintassi ==
La dichiarazione di una struttura è
{{IndexItem|struct}}
<pre>
struct Studente {
Line 18 ⟶ 21:
''Notate il ; (punto e virgola) finale: è necessario.''
Con questo codice,
== Esempi d'uso ==
Dopo una dichiarazione del genere, in qualunque momento può essere dichiarata una variabile in questo modo:
<pre>
struct Studente var1;
</pre>
Adesso <tt>var1</tt> è una struttura con tre
Per modificare o leggere
<pre>
scanf("%s", var1.nome);
Line 38 ⟶ 41:
----
È possibile
<pre>
Line 50 ⟶ 53:
In questo caso, ho definito una struttura <code>Studente</code> e ho anche dichiarato una variabile di tale tipo.
=={{IndexItem|puntatori a strutture}}{{IndexItem|strutture, puntatori a}}Puntatori a strutture==
È possibile dichiarare anche [[Linguaggio C/Vettori e puntatori/Puntatori|puntatori]] a strutture.
Line 72 ⟶ 75:
Il nome dello studente è: Massimiliano
Il puntatore <tt>punt</tt> punta alla variabile <tt>pippo</tt>; per accedere dal puntatore ad un membro della struttura da esso puntata si usa l'{{IndexItem|operatore freccia}}operatore <tt>-></tt> (freccia).
Il programma avrebbe funzionato anche così:
Line 78 ⟶ 81:
strcpy((*punt).nome, "Massimiliano");
Ma l'operatore freccia è
La funzione {{IndexItem|strcpy}}<tt>strcpy</tt>, appartenente alla libreria C standard, permette di copiare la stringa rappresentata dal secondo argomento nella stringa rappresentata dal primo argomento.
== {{IndexItem|campi bit}}Campi bit ==
In C, con i campi bit, è possibile accedere ai singoli bit dei dati. I campi bit sono utili in molte occasioni, tipo quando si vogliono rappresentare una serie di variabili booleane.
|