Strutture in Do

Structures C



In C, una struttura è una variabile definita dall'utente utilizzata per memorizzare una raccolta di variabili in una singola entità. Usiamo una semplice analogia per spiegare l'implementazione e l'utilità delle strutture in C.

Supponiamo di voler memorizzare informazioni sugli utenti che utilizzano un servizio specifico. Tali informazioni possono includere il nome utente, l'e-mail, l'indirizzo, la modalità del servizio e simili. Per memorizzare tali informazioni, possiamo creare ciascun attributo come variabile autonoma. Tuttavia, quando abbiamo più di dieci utenti, il codice può andare fuori controllo e diventare molto difficile e noioso da leggere.







Per risolvere questo problema, possiamo creare una struttura. All'interno della struttura, possiamo memorizzare tutti gli attributi condivisi da tutti gli utenti e quindi aggiungere variabili univoche per ogni utente.



Diamo un'occhiata a vari esempi per vedere come implementarlo.



Come definire una struttura in Do

Per definire una struttura in C, usiamo la parola chiave struct seguita dal nome della struttura. Dopo il nome, abbiamo un paio di parentesi graffe dove aggiungiamo i membri.





Considera la sintassi seguente:

strutturanome_struttura
{
/* dati */
digita nome_membro;
digita nome_membro2;
digita nome_membro3;

...
generenome_membroN;
};

Il nome della struttura può essere qualsiasi cosa desideri purché aderisca alla convenzione di denominazione del linguaggio di programmazione C.



Possiamo implementare una struttura di esempio dell'analogia utente come:

strutturautenti
{
charnome utente[venti];
chare-mail[225];
charindirizzo[cinquanta];
intetà;
bool registrato;
};

Come creare variabili di struttura

Esistono due modi principali per creare variabili di struttura. Il primo è dichiararli come normali variabili, e l'altro è impostarli usando le parentesi graffe.

L'esempio seguente mostra come dichiarare le variabili di struttura come variabili C standard.

strutturautenti
{
charnome utente[venti];
chare-mail[225];
charindirizzo[cinquanta];
intetà;
bool registrato;
};

intprincipale(intargomento, char cost *argv[])
{
strutturautenti utente1,utente2,utente3
Restituzione 0;
}

L'altro metodo per creare variabili di struttura è come mostrato di seguito:

strutturautenti
{
charnome utente[venti];
chare-mail[225];
charindirizzo[cinquanta];
intetà;
bool registrato;
}utente1,utente2,utente3;

In questo esempio, li creiamo durante la dichiarazione della struttura.

Iniz. membro struttura

Non è possibile inizializzare i membri della struttura durante la creazione poiché non è presente memoria allocata per il tipo.

Per inizializzare i membri di una struttura, si utilizzano le parentesi graffe come mostrato di seguito:

strutturautenti
{
charnome utente[venti];
chare-mail[225];
charindirizzo[cinquanta];
intetà;
bool registrato;
};
intprincipale(intargomento, char cost *argv[])
{
strutturautenti utente1= {'mionomeutente', '[e-mail protetta]', 35, vero}
Restituzione 0;
}

Membri della struttura di accesso

Per accedere ai membri di una struttura, usiamo l'operatore punto, che inizia con il nome della struttura, un punto e il nome del membro.

strutturautenti
{
charnome utente[venti];
chare-mail[225];
charindirizzo[cinquanta];
intetà;
bool registrato;
};
intprincipale(intargomento, char cost *argv[])
{
strutturautenti utente1= {'mionomeutente', '[e-mail protetta]', 35, vero}
utente1.e-mail = '[e-mail protetta]'
Restituzione 0;
}

In questo esempio, accediamo ai membri di user1.

Digita parola chiave

Usiamo la parola chiave typedef per creare un alias per i tipi di dati, rendendo il codice più leggibile.

Per esempio:

typedef strutturautenti
{
charnome utente[venti];
chare-mail[225];
charindirizzo[cinquanta];
intetà;
bool registrato;
}tu;
intprincipale(intargomento, char cost *argv[])
{
tu utente1= {'mionomeutente', '[e-mail protetta]', 35, vero}
utente1.registrato = falso
Restituzione 0;
}

Nell'esempio sopra, abbiamo creato un alias u per la struttura degli utenti. Pertanto, non è necessario chiamare gli utenti struct ogni volta. Possiamo usare u come definito sopra.

Puntatori di struttura

Puoi anche avere un puntatore a una struttura. In questo modo è possibile accedere ai membri utilizzando l'operatore ->.

Per esempio:

typedef strutturautenti
{
charnome utente[venti];
chare-mail[225];
charindirizzo[cinquanta];
intetà;
bool registrato;
}tu;
intprincipale(intargomento, char cost *argv[])
{
tu utente1= {'mionomeutente', '[e-mail protetta]', 35, vero}

// puntatore a un'altra struttura
tu*utente_ptr= &utente1
utente_ptr->nome utente= 'ptrusername'
Restituzione 0;
}

Conclusione

Questa guida copre le basi per lavorare con le strutture nel linguaggio di programmazione C.

Grazie per aver letto!