Hallo en welkom terug.
Meer over structuren, met name geneste structuren, geneste structuren, structuren, binnenstructuren.
Dat is wat dat betekent.
Hiermee kunt u een structuur definiëren die zelf andere structuren bevat als een of meer van zijn leden.
Dus best een leuk concept hier.
Je kunt structuren binnenin structuren hebben.
Dus je hebt gezien hoe het mogelijk is om de maand, een dag in een jaar, logisch te groeperen in een structuur
genaamd datum, we zijn bij dit voorbeeld van datum gebleven.
Nou, hoe zit het als we tijd, de uren, minuten en seconden willen groeperen in een structuur die
ook nuttig lijkt te zijn?
Dus hier zouden we een structuuraanroeptijd hebben, en het is erg vergelijkbaar vandaag, het bevat drie elementen.
We weten dat de naam van de structuur tijd is, omdat deze het sleutelwoord structuur volgt.
Dat is de tagnaam.
En binnen de accolades definiëren we onze elementen, onze gegevenstypen en de namen van onze variabelen.
En we weten nu dat we er ook een array in kunnen plaatsen als we dat willen.
Maar in dit geval hebben we geen array nodig.
We hebben slechts drie gehele getallen nodig.
We eindigen de structuur met de juiste accolade en de puntkomma.
Maar hoe zit het met, in sommige toepassingen, wil je misschien allebei een date in de tijd samen, het
zou logisch zijn, toch?
Omdat de datum en de tijd of logisch geordend of logisch samen daar zijn logisch
gegroepeerd.
U kunt dus een lijst maken met gebeurtenissen die op een bepaalde datum en tijd moeten plaatsvinden.
Dit kan dus een heel handig geval zijn waarbij u een geneste structuur wilt gebruiken.
Dus je hebt een handige manier om zowel de datum als de tijd aan elkaar te koppelen, we kunnen een nieuwe structuur
definiëren die bijvoorbeeld datum in tijd wordt genoemd.
Dit zou als zijn leden twee elementen bevatten, een datum en tijd, die beide structuren zijn.
We hebben nu dus een geneste structuur.
We hebben een structuur, naam, datum en tijd die twee andere structuren bevat.
Zoiets in de syntaxis lijkt erg op het maken van andere structuren.
Het enige verschil hier is binnen de eigenlijke structuur als de elementnamen, je hebt het struct-sleutelwoord, de naam
van de struct en dan de naam van de variabele.
Dus in dit geval maken we een datum- en tijdstruct en moeten we er een één keer structureren om datums van het type
tijd te typen.
Twee variabelen geven de nesttijd aan.
Het eerste lid van de structuur is van het type geslagen datum, en het wordt een datum genoemd, het tweede lid van
de datum- en tijdstructuur is van het type geslagen tijd, en het wordt s tijd genoemd.
Variabelen kunnen nu worden gedefinieerd als type, struct, datum en tijd, we hoeven geen aparte variabelen te
maken voor datum, aparte variabelen voor tijd, we kunnen er een maken.
En die structuur gaat zowel de datum als de tijd opslaan.
We zouden dat op deze manier doen, we zouden het sleutelwoord gebruiken, het type structuur in de tijd specificeren en dan de
variabelenaam in dit geval, ze gaan gebeurtenissen opslaan.
Dus we zeggen gebeurtenis wanneer we toegang willen hebben tot de leden en de geneste structuur.
Nogmaals, vrij eenvoudige syntaxis.
Het enige dat u hoeft te doen, is ernaar verwijzen zoals elk ander lid.
U moet die operator voor ledenselectie gebruiken, dus zou deze vrijwel een aantal keren gebruiken.
Dus als we een structuur hebben met de naam event en we willen de datum krijgen, dan zeggen we event
date omdat dat lid is van die datum in time struct.
Als u nu naar een bepaald lid binnen de staat wilt verwijzen, zou u opnieuw de periode gebruiken met het
nummer en de naam die aan het einde zouden worden geplakt.
Dus deze stoomstoot zal de maand van de datumstructuur in het evenement instellen op oktober.
En het gaat er een toevoegen aan de seconden in de tijdstructuur.
Dus we zeggen gebeurtenis, puntstatus en dan nog een punt omdat we toegang willen hebben tot het element van de datumvariabele.
We willen toegang tot maand en we gaan maand 10 toewijzen.
Er zijn dus meerdere stippen.
En dit alles wil zeggen dat je een struct genaamd event hebt.
En vanwege onze verklaring voordat we zeiden dat het van type, datum en tijd binnen was, heb je daar een
struct, dat is gewoon een datumstruct.
U wilt van die dag toegang krijgen tot het maandlid.
Dus je zegt Dopp-maand tegen punten.
En als we het tweede segment met één willen veranderen, kunnen we
gewoon plus plus zeggen, we kunnen die pre-incriminatie-operator plus plus-gebeurtenis gebruiken.
Dat is als time-out seconden.
We moeten die twee punten in seconden als een geheel getal opnemen.
Dus het gaat er gewoon een aan toevoegen.
Heel eenvoudig.
De gebeurtenisvariabele kan net als normale structuren worden geïnitialiseerd, als u de datum in
de variabele gebeurtenis wilt instellen op 4 februari 2015, en de tijd op 330, zou u zeggen, doorgehaald in de
tijdgebeurtenis die u net als normaal hebt gemaakt, en dan zou je die accolades hebben om de verschillende streken,
initialisatieleden te specificeren.
Dus op de eerste accolades gaan we de datum initialiseren.
We gaan de maand initialiseren tot februari, de data één en het jaar tot 2015.
En dan beëindigen we de accolades en zetten we een komma achter die accolades.
En dan de tweede, wat een soort uiterlijk is en het lijkt op een multidimensionale array-initialisatie.
We zeggen dat de tijd gelijk zal zijn aan drie 30 met nul.
Dus drie uur, 30 minuten.
Nul seconden.
U kunt de namen en initialisatie van de leden gebruiken, net als al onze andere initialisatieregels.
Dit zou handig zijn omdat u de bestelling niet hoeft op te geven.
En hier creëren we gewoon het evenement.
En dan binnen de accolades gebruiken we de punt.
Operator, we zeggen dat Dormont gelijk is aan accommoderen is gelijk aan één gemeenschappelijk hier is gelijk aan 2015, en dat
gaat alleen de datuminitialisatie specificeren.
Als we de tijdinitialisatie willen specificeren, gebruiken we gewoon opnieuw de punten voor elk lid met de naam
DOT onze puntminuten en kunnen we de volgorde omdraaien.
Rechts?
We kunnen zeggen dat puntseconde eerst gelijk is aan nul en dan puntminuten is gelijk aan dertig en dan onze drie als laatste.
De volgorde maakt niet uit.
En dan eindigen we het met een puntkomma en de accolade rechts.
Nu we weten dat we NSA-structuren kunnen hebben, hoe zit het met een reeks geneste structuren nu
we er echt aan beginnen?
Ja, het is mogelijk.
U kunt een reeks dag- en tijdstructuren instellen, en datum en tijd bevatten twee structuren
erin.
Je doet het gewoon net als een andere normale syntaxis.
U moet die haakjes gebruiken om de grootte van de array op te geven wanneer u de werkelijke structuurnaam declareert.
U moet het type, datum en tijd specificeren, net als elke andere structuur.
De reeks gebeurtenissen wordt verklaard om 100 elementen van type, structuur, datum en tijd te bevatten.
Naar de vierde dag in de tijd in de array wordt verwezen met behulp van de gebruikelijke index-subquery of index
drie of subscript drie binnen die vierkante haken.
Dus om de eerste keer in de array op 12.00 uur in te stellen, zou je de eerste keer gebeurtenis Sub-Zero zeggen,
want onthoud, aangezien de tijd naar de tijdstruct verwijst en dan moet je toegang krijgen tot het element in de tijdstruct, dat is
Owasso-gebruik nog een punt en je zegt 12.
Het lijkt erg op de vorige declaratie of toewijzing, moet ik zeggen, maar in plaats
daarvan heeft het die array-index nul tussen vierkante haken.
Als gebeurtenissen geen array waren en je alleen toegang wilde tot de enkele structuur of de uurstructuur van tijd,
zou je gewoon de haakjes verwijderen.
Dus de arrays maken niets echt ingewikkeld.
Je moet gewoon heel bekend zijn met die vierkante haken en de indexen.
Hier stellen we de minuten in op nul, gebeurtenissen onder nul, dus we stellen dat eerste element in en dan zetten
we het tweede op nul.
Als we nu een structuur binnen een structuur willen declareren.
U kunt de datumstructuur definiëren binnen de tijdstructuurdefinitie.
Dit is dus weer een andere categorie van flexibiliteit.
We hoeven de datum- en tijdstructuur niet per se ergens anders te hebben gedefinieerd.
We kunnen die structuren direct in onze datum- en tijdstructuur definiëren.
Dus hier zou een voorbeeld zijn van het definiëren van de datumstructuur binnen hun binnen de tijdstructuur.
Dus hier hebben we een geneste structuur, maar we hebben het eigenlijk gedefinieerd binnen de definitie van
tijdsstruct, dus we zeggen tijd structureren met de tagnaam en dan binnen de accolades, we zeggen struct acht.
Dat is volkomen terecht.
En je zult ook opmerken dat we aan het einde van de dag voor de laatste puntkomma een variabele maken met
de naam Dobb.
En nadat we de structuur en zijn elementen in een variabele Dobbie hebben gemaakt, specificeren we de elementen
van de tijdstructuur uren, minuten en seconden.
Dat is dus volkomen terecht.
Nu zou je waarschijnlijk moeten opmerken dat de beperking van deze stakingsdatum alleen daar wordt gedefinieerd.
Eenmaal met een variabele naam DOB, kunt u de datumstructuur nergens anders gebruiken, tenzij u een
binnentijd gebruikt.
U kunt de datum op zichzelf niet gebruiken.
Dus de declaratie van de dagstructuur is ingesloten binnen het bereik van de tijd, structuur, definitie,
bereik verwijst naar hoe je toegang kunt krijgen tot dingen omdat de datumstructuur binnen het bereik van tijd valt.
U kunt er alleen toegang toe krijgen als u een tijdvariabele time struct-variabele maakt.
Je kunt niet zomaar zeggen struct date mijn variabele naam omdat je daar geen toegang toe hebt.
Datum bestaat dus niet buiten de tijdsstructuur.
Het is onmogelijk om een datumvariabele buiten de tijdstructuur te declareren.
De enige keer dat u ooit een datumstructuurvariabele kunt gebruiken, is wanneer u de tijdstructuur maakt en deze
automatisch een Dobbie-variabele voor u maakt.
Dit is dus enigszins beperkt, maar je zou dit gebruiken in het geval dat je alleen de datum nodig hebt wanneer deze is
gekoppeld aan de tijd.
De datum mag nooit op zichzelf staan.
Dan zou je het op deze manier doen.
Dus een ander mooi concept, een concept om een structuur aan te bieden in een structuur die heel, heel basaal is in de
syntaxis, is vrij eenvoudig.
Je zult hier vrij gemakkelijk aan wennen door de array toe te voegen aan een structuur die een structuur bevat.
U gebruikt gewoon de vierkante haken in de index.
Daar verandert eigenlijk niets.
En dan kun je het formaat een beetje veranderen.
Als u alleen een lokale geneste structuur wilt, kunt u deze direct binnen de andere structuurdefinitie definiëren.
Dus we worden hier echt experts met ons structuurtype, ik wil het hebben over
de laatste paar concepten, in het bijzonder wil ik je laten zien hoe je pointers kunt maken in
een structuur die nuttig is, en dan zullen we wat uitdagingen doen en oefeningen en het zal u echt vertrouwd
maken met dit structuurconcept.
Dank u.