Ciao e bentornati di più su strutture strutture particolarmente annidate strutture strutture annidate all'interno di
strutture che è ciò che significa.
Quindi C ti permette di definire una struttura che contiene tutte le loro strutture come uno o più
dei suoi membri.
Quindi qualsiasi concetto in cui è possibile avere strutture all'interno di strutture in modo da aver visto come è possibile raggruppare logicamente
il mese del giorno dell'anno in una struttura chiamata Date.
Siamo rimasti fedeli a questo esempio del giorno.
Bene, e se volessimo effettivamente raggruppare il tempo in cui le ore e i secondi in una struttura mi
sembra che sarebbe utile.
Quindi qui avremmo una struttura chiamata time ed è molto simile a quella che contiene tre elementi.
Sappiamo che il nome della struttura è tempo perché segue la parola chiave struct.
Questo è il nome del tag.
E poi all'interno delle parentesi graffe definiamo i nostri elementi come tipi di dati e nomi di variabili e
ora sappiamo che possiamo anche inserire un array lì se lo vogliamo.
Ma in questo caso non disponiamo nemmeno di array, abbiamo solo bisogno di tre interi.
Concludiamo la struttura con la parentesi graffa destra e la somma che chiamo per quanto riguarda alcune applicazioni che potresti
voler rendere più difficili sia la data che l'ora.
Avrebbe senso, perché la data e l'ora sono organicamente organizzate o logicamente
insieme, logicamente raggruppate.
Quindi è possibile impostare un elenco di eventi che devono verificarsi in una data e un'ora particolari.
E quindi questo potrebbe essere un caso molto utile in cui si vorrebbe usare una struttura annidata in modo da avere un modo conveniente
per associare sia la data che l'ora insieme.
Possiamo definire una nuova struttura chiamata per esempio data nel tempo che conterrebbe come suoi membri
due elementi una data nel tempo che sono entrambe strutture.
Quindi ora abbiamo una struttura nidificata, abbiamo una struttura chiamata tempo dên che contiene altre due strutture.
Qualcosa del genere.
E la sintassi è molto simile alla creazione di altre strutture.
L'unica differenza di cosa qui è all'interno della struttura attuale come i nomi degli elementi che hai la
parola chiave struct, il nome della struct e poi la variabile.
Quindi in questo caso stiamo creando un costrutto delicato e ne abbiamo due strutturati.
Uno è un tipo di data di tipo time con due variabili come time state, il primo membro della struttura è di
tipo struct day nel suo nome Date.
Il secondo membro della struttura di data e ora è di tipo struct time e viene chiamato come le variabili di tempo
possono essere definite come di tipo struct data e ora.
Non dobbiamo creare variabili separate per variabili separate per il giorno per il tempo.
Possiamo crearne uno e questa struttura memorizzerà sia la data che l'ora in cui faremmo così, useremo una parola chiave
struct per specificare il tipo di struttura da legare e quindi il nome della variabile.
In questo caso stanno andando a memorizzare eventi così diciamo evento quando si desidera accedere ai membri
della struttura nidificata.
Di nuovo sintassi piuttosto semplice.
Tutto quello che devi fare è fare riferimento come qualsiasi altro membro che devi usare quell'operatore di selezione dei membri del punto.
Quindi lo usiamo più o meno un po 'di volte quindi se abbiamo una struttura chiamata
event e vogliamo ottenere la data diciamo Venkat come data perché questo è un membro di quella struttura data ora Ora se vuoi fare riferimento a un
particolare membro all'interno di dichiari di nuovo che useresti il periodo in cui cadi per il nome del numero
che verrebbe attaccato alla fine.
Quindi questo sotto vapore sta per impostare il mese della struttura della data contenuta all'interno dell'evento a ottobre.
E aggiungerà uno al secondo è contenuto nella struttura temporale.
Quindi diciamo la data dell'evento e poi un altro punto perché vogliamo accedere all'elemento della variabile del giorno.
Vogliamo accedere al mese e firmeremo il mese 10.
Quindi ci sono più punti lì e tutto ciò sta dicendo che hai una struttura chiamata evento e, a causa della nostra dichiarazione,
prima abbiamo detto che era di tipo DATA E ORA.
Dentro c'è una struttura che è solo una struttura di date.
Si desidera accedere a ciò che hanno colpito il membro del mese.
Quindi dici Dopp mese due punti.
E poi se vogliamo cambiare un secondo incremento di uno possiamo solo dire più e più possiamo
usare quell'operatore di preincremento plus più l'evento che è come secondi di tempo in cui dobbiamo includere quei due punti in secondi come
numero intero, quindi è solo intenzione di aggiungi 1 ad esso.
Molto semplice.
La variabile evento può essere inizializzata come le normali strutture se si desidera impostare
la data nell'evento variabile al 4 febbraio 2015 e il tempo a 330 si direbbe che l'evento di data e ora
si crei esattamente come normale e che si avrebbe quelle parentesi graffe per specificare i diversi membri di
inizializzazione della struttura.
Quindi nelle prime parentesi graffe iniziamo a inizializzare la data in cui iniziamo a inizializzare il mese
a febbraio, i dati 1 e l'anno 2015 e poi finiamo le parentesi graffe e inseriamo una virgola dopo quelle parentesi graffe
e poi il secondo che è un po 'come il look in esso appare come un'inizializzazione
di array multidimensionale.
Diciamo che il tempo sarà uguale a 330 con 0.
Quindi 3 ore e 30 minuti 0 secondi.
È possibile utilizzare i nomi dei membri durante l'inizializzazione, proprio come tutte le altre regole di inizializzazione.
Ciò sarebbe vantaggioso perché non dovresti specificare l'ordine in qui, semplicemente creiamo l'evento
e quindi all'interno delle parentesi graffe utilizziamo l'operatore punto diciamo che Dot equivale a com e punto com punto
qui equals 2015.
E questo sta solo specificando l'inizializzazione della data.
Se volessimo specificare l'inizializzazione del tempo, useremo nuovamente i punti per ogni membro chiamato dot
i nostri minuti DOT e potremmo cambiare l'ordine a destra.
Possiamo dire che il secondo sequel 0 prima e poi otto minuti equivale a 30 e quindi i nostri
tre l'ultimo ordine non ha importanza.
E poi lo finiamo con un punto e virgola nel tutore riccio destro riccio.
Ora sappiamo che possiamo avere strutture nidificate e che cosa è un array di strutture nidificate.
Ora ci stiamo davvero addentrando.
Sì, è possibile.
È possibile impostare un array di data e ora per le strutture temporali e data e ora contiene due strutture
al suo interno.
Lo fai come qualsiasi altra sintassi normale.
È necessario utilizzare queste parentesi per specificare la dimensione della matrice quando si dichiara il nome della
struttura effettiva.
Devi specificare la data e l'ora del tipo come qualsiasi altra struttura che gli eventi dell'array sono dichiarati
per contenere 100 elementi di tipo struct date e time il riferimento 14 volte all'interno dell'array viene
fatto riferimento usando il solito indice sub 3 o index tre o successivi tre .
Dentro quelle parentesi quadre quindi per impostare la prima volta nell'array a mezzogiorno si direbbe l'evento Tempo Sub-Zero perché ricorda come
il tempo punta alla struttura temporale e quindi devi accedere all'elemento nella struttura temporale che è il nostro
So use un altro punto e dici 12.
Sembra molto simile alla precedente dichiarazione o compito che dovrei dire, ma invece
ha quell'array index zero all'interno delle parentesi quadre.
Se gli eventi non erano un array e volevi semplicemente accedere alla singola struttura o alla struttura esterna del
tempo, ti saresti semplicemente sbarazzato delle parentesi.
Quindi gli array non complicano davvero nulla, basta essere davvero
familiari con quelle parentesi quadre negli indici qui resettando i minuti a zero dell'evento Sub-Zero.
Quindi impostiamo il primo elemento e quindi impostiamo il secondo come 0.
Ora se volessimo cancellare una struttura all'interno di una struttura, possiamo definire la struttura all'interno della definizione della
struttura temporale.
Quindi questo è un altro.
Un'altra categoria di flessibilità.
Non dobbiamo necessariamente avere il giorno e la struttura temporale definita da qualche altra parte possiamo definire
quelle strutture proprio nella nostra struttura temporale.
Quindi, ecco un esempio di come si definisce la struttura al suo interno all'interno della struttura del tipo.
Quindi qui abbiamo una struttura nidificata ma in realtà l'abbiamo definita all'interno della definizione di struttura temporale.
Quindi diciamo struct time con il nome del tag e quindi all'interno delle parentesi graffe diciamo struct date.
Questo è perfettamente valido.
E noterai anche che la fine della struct date prima del punto e virgola finale stava creando una variabile
chiamata D. O. B.
E poi, dopo aver creato la struttura e i suoi elementi in una variabile D-B, specifichiamo gli
elementi della struttura temporale in minuti e secondi.
Quindi è perfettamente valido ora dovresti probabilmente notare che la limitazione di questo struct day
sarà definita solo una volta con una variabile chiamata DSB.
Non sarai in grado di utilizzare la struttura della data ovunque al di fuori di questo, a meno che tu non usi un tempo interno per non essere
in grado di utilizzare i dati da solo.
Quindi la dichiarazione della struttura del giorno è racchiusa nell'ambito della definizione della struttura temporale. La scultura si riferisce
a come è possibile accedere alle cose perché la struttura dei dati è nel tempo.
Non è possibile accedervi a meno che non si crei una variabile struct time time variabile.
Non puoi semplicemente dire struct day my variable name perché non hai accesso a questo.
Quindi i dati non esistono al di fuori della struttura temporale.
È impossibile dichiarare una variabile data esterna alla struttura temporale.
L'unica volta in cui potresti utilizzare una variabile di struttura data è quando crei la struttura temporale e
creerà automaticamente un accordo come variabile per te.
Quindi questo è un po 'limitato, ma lo useresti nel caso in cui ti serva solo la data in cui è
associata all'ora in cui la data non dovrebbe mai essere da sola.
Allora lo faresti in questo modo in un altro concetto pulito.
Un concetto di fornire una struttura all'interno di una struttura.
Molto molto semplice e la sintassi è abbastanza semplice ci si abitua a questi abbastanza facilmente aggiungendo l'array a una
struttura che contiene una struttura.
Basta usare le parentesi quadre nell'indice.
Niente cambia davvero lì.
E poi puoi cambiare un po 'il formato se vuoi solo una struttura nidificata locale.
Puoi definirlo proprio all'interno dell'altra definizione della struttura.
Quindi stiamo davvero diventando esperti qui con il nostro tipo di struttura.
Voglio parlare dell'ultima coppia di concetti, in particolare voglio mostrare come è possibile creare indicatori
all'interno di una struttura che è utile, quindi faremo alcune sfide ed esercizi e ti renderà
veramente familiare con questo concetto di struttura.
Grazie.