Inhoudsopgave:
Video: Software Testing Tutorials for Beginners 2024
U kunt de C-programmeertaalstructuur beschouwen als een multivariabele, of meerdere variabelen in één. U gebruikt structuren om complexe informatie op te slaan of te openen. Op die manier kunt u verschillende int, char, float-variabelen en zelfs arrays in één overzichtelijk pakket bewaren.
Basisprincipes van struct
Een structuur is geen variabel type. Zie het in plaats daarvan als een frame dat meerdere variabele typen bevat. In veel opzichten is een structuur vergelijkbaar met een record in een database. Bijvoorbeeld:
Naam Leeftijd Gokschuld
Deze drie items kunnen velden in een databaserecord zijn, maar ze kunnen ook leden in een structuur zijn: Naam zou een string zijn; Leeftijd, een geheel getal; en gokschuld, een waarde zonder drijvende komma. Hier is hoe zo'n record eruit zou zien als een structuur in C:
struct record {char name [32]; int leeftijd; zweven schuld;};
struct is een C-taalzoekwoord dat een nieuwe structuur introduceert, definieert of maakt.
record is de naam van de nieuwe structuur die wordt gemaakt.
Beweeg binnen de accolades de leden van de structuur, de variabelen in de benoemde structuur. Het recordstructuurtype bevat drie ledvariabelen: een reeksnaam, een int genoemde leeftijd en een zweeftabel, schuld.
Om de structuur te gebruiken, moet u een structuurvariabele declareren van het structuurtype dat u hebt gemaakt. Bijvoorbeeld:
struct record human;
Deze regel verklaart een nieuwe variabele van het type recordstructuur. De nieuwe variabele heeft de naam human .
Structuurvariabelen kunnen ook worden gedeclareerd wanneer u de structuur zelf definieert. Bijvoorbeeld:
struct record {char name [32]; int leeftijd; schuld drijven;} mens;
Deze instructies definiëren de recordstructuur en verklaren een recordstructuurvariabele, human . Meerdere variabelen van dat structuurtype kunnen ook worden gemaakt:
struct record {char name [32]; int leeftijd; zwevende schuld;} bill, mary, dan, susie;
In dit voorbeeld worden vier recordstructuurvariabelen gemaakt. Elke variabele heeft toegang tot de drie leden die in de structuur zijn gedefinieerd.
Als u leden in een structuurvariabele wilt openen, gebruikt u een punt, de lidoperator . Het verbindt de naam van de structuurvariabele met een lidnaam. Bijvoorbeeld:
printf ("slachtoffer:% sn", rekeningnaam);
Deze verklaring verwijst naar het naamlid in de structuurvariabele -rekening . Een char-array, deze kan in uw code worden gebruikt zoals elke andere char-array. Andere leden in de structuurvariabele kunnen ook als hun individuele tegenhangers worden gebruikt:
dan.leeftijd = 32;
Een structuur vullen
Net als bij andere variabelen, kunt u waarden aan een structuurvariabele toewijzen wanneer deze is gemaakt. U moet eerst het structuurtype definiëren en vervolgens een structuurvariabele declareren met de vooraf ingestelde lidwaarden. Zorg ervoor dat de vooraf ingestelde waarden overeenkomen met de volgorde en het type leden die in de structuur zijn gedefinieerd, zoals wordt weergegeven in Een geïnitialiseerde structuur declareren.
EEN INITIALIZED STRUCTUUR VERKLAREN
#include int main () {struct president {char name [40]; int jaar;}; struct president first = {"George Washington", 1789}; printf ("De eerste president was% sn", eerst naam); printf ("Hij werd in% dn ingewijd", eerste jaar); return (0);}
Oefening 1 : Maak een nieuw programma door de broncode van Declaration a Initialized Structure in de editor in te voeren. Bouw en ren.
U kunt ook een structuur declareren en deze in één instructie initialiseren:
struct president {char name [40]; int jaar;} first = {"George Washington", 1789};
Oefening 2 : Pas uw broncode aan vanuit Oefening 1, zodat de structuur en variabele worden gedeclareerd en geïnitialiseerd als één instructie.
Hoewel u een structuur kunt declareren en een structuurvariabele kunt initialiseren zoals eerder getoond, kunt u maar één keer met die truc wegkomen. U kunt de techniek niet gebruiken om de tweede structuurvariabele te declareren, wat op de traditionele manier moet gebeuren, zoals wordt getoond in Declaration a Initialized Structure.
Oefening 3 : Voeg nog een presidentstructuurvariabele toe, ten tweede aan uw code, die structuur initialiseert met informatie over de tweede president, John Adams, die in 1797 werd ingewijd. Geef de inhoud van beide structuren weer.
Een reeks structuren maken
Individuele structuurvariabelen achter elkaar maken is net zo saai en verspillend als het maken van een reeks van elk individueel variabelentype. De oplossing voor meerdere structuren is dezelfde als voor meerdere individuele variabelen: een array.
Een structuurarray wordt als volgt gedeclareerd:
struct scores speler [4];
Deze verklaring declareert een array van scoresstructuren. De array heeft de naam player en bevat vier structuurvariabelen.
De structuren in de array zijn toegankelijk via een combinatie van array- en structuurnotatie. Bijvoorbeeld:
speler [2]. naam
De variabele in de voorgaande regel benadert het naamlid in het derde element in de spelerstructuurarray. Ja, dat is het derde element, want er wordt naar het eerste element verwezen op deze manier:
speler [0]. naam
Arrays beginnen met nummering met het element 0, niet met element 1.
Lijn 10 in Arrays of Structures declareert een array van vier scoresstructuren. De array heeft de naam player. Regels 13 tot en met 19 vullen elke structuur in de array. Regel 21 tot 27 geven de ledwaarden van elke structuur weer.
ARRAYS OF STRUCTURES
# include int main () {struct scores {char name [32]; int score;}; struct scores speler [4]; int x; for (x = 0; x <4; x ++) {printf ("Enter player% d:", x + 1); scanf ("% s", speler [x].naam); printf ("voer hun score in:"); scanf ("% d", & speler [x]. score);} puts ("Speler Info"); printf ("# tNametScoren"); voor (x = 0; x <4; x ++) {printf ("% dt% st% 5dn", x + 1, speler [x].naam, speler [x]. score);} return (0);}
Oefening 4 : Typ de broncode van Arrays of Structures in uw editor. Bouw en run het programma. Probeer de scores op minder dan vijf cijfers te houden, zodat ze correct worden uitgelijnd.
Oefening 5 : Voeg code toe aan reeksen van structuren, zodat de weergave van structuren wordt gesorteerd met de hoogste score als eerste. Ja, je kunt dit doen. Het sorteren van een reeks structuren werkt net als het sorteren van een andere array.
Hier is een hint: regel 27 van de oplossing ziet er als volgt uit:
speler [a] = speler [b];
U kunt structuurarrayelementen verwisselen net zoals u alle arrayelementen kunt verwisselen. U hoeft de leden van de structuurvariabele niet om te wisselen.