Innehållsförteckning:
Video: Begrepp inom programmering 2024
Du kan tänka på C-programmeringsspråksstrukturen som en multivariabel, eller flera variabler som rullas in i en. Du använder strukturer för att lagra eller få tillgång till komplex information. På så sätt kan du behålla olika int, char, floatvariabler, och även arrayer, allt i ett snyggt paket.
Grunderna för struct
En struktur är inte en variabel typ. Tänk istället på det som en ram som innehåller flera variabla typer. På många sätt liknar en struktur en post i en databas. Till exempel:
Namn Ålderspel skuld
Dessa tre objekt kan vara fält i en databasrekord, men de kan också vara medlemmar i en struktur: Namnet skulle vara en sträng; Ålder, ett heltal; och Gambling Debt, ett osignerat flytande poängvärde. Så här är en sådan post som en struktur i C:
struct record {char name [32]; int ålder; float skuld;};
struct är ett C-språkord som introducerar, definierar eller skapar en ny struktur.
posten är namnet på den nya strukturen som skapas.
Inom de krökta parenteserna bor strukturens medlemmar, variablerna i den angivna strukturen. Poststrukturen innehåller tre medlemsvariabler: ett strängnamn, en namngiven ålder och ett float-värde, skuld.
För att använda strukturen måste du deklarera en strukturvariabel för den strukturtyp du skapade. Till exempel:
struktural record human;
Denna rad deklarerar en ny variabel av poststrukturen. Den nya variabeln heter mänsklig .
Strukturvariabler kan också deklareras när du definierar strukturen själv. Till exempel:
struct record {char name [32]; int ålder; float skuld;} mänsklig;
Dessa uttalanden definierar rekordstrukturen och deklarerar en rekordstrukturvariabel, mänsklig . Multipla variabler av den här strukturtypen kan också skapas:
struct record {char name [32]; int ålder; float skuld;} bill, mary, dan, susie;
Fyra rekordstrukturevariabler skapas i det här exemplet. Varje variabel har tillgång till de tre medlemmarna som definieras i strukturen.
För att komma åt medlemmar i en strukturvariabel använder du en period, som är medlemsoperatören . Den ansluter strukturvariabelnamnet med ett medlemsnamn. Till exempel:
printf ("offer:% sn", bill. Namn);
Detta uttalande hänvisar namnet medlemmen i strukturfältet bill . En char array, den kan användas i din kod som alla andra char array. Andra medlemmar i strukturvariabeln kan också användas som deras enskilda motsvarigheter:
dan.ålder = 32;
Så här fyller du i en struktur
Som med andra variabler kan du tilldela värden till en strukturvariabel när den skapas. Du måste först definiera strukturtypen och sedan deklarera en strukturvariabel med dess förinställda medlemsvärden. Se till att de förinställda värdena matchar ordningen och typen av medlemmar som definieras i strukturen, som visas i deklarationen av en initialiserad struktur.
FÖRKLARA EN INITIALISERAD STRUKTUR
#include int main () {struct president {char name [40]; int år;}; struct president först = {"George Washington", 1789}; printf ("Den första presidenten var% sn", först. namn); printf ("Han invigdes i% dn", första året); returnera (0);}
Övning 1 : Skapa ett nytt program genom att skriva källkoden från deklarera en initialiserad struktur till redigeraren. Bygg och kör.
Du kan också deklarera en struktur och initiera den i ett uttalande:
struct president {char name [40]; int år;} först = {"George Washington", 1789};
Övning 2 : Ändra din källkod från övning 1 så att strukturen och variabeln deklareras och initialiseras som ett uttalande.
Även om du kan deklarera en struktur och initiera en strukturvariabel som visas, kan du bara komma undan med det där tricket en gång. Du kan inte använda tekniken för att deklarera den andra strukturvariabeln, vilket måste göras på det traditionella sättet, som visas i deklarationen av en initialiserad struktur.
Övning 3 : Lägg till en annan variabel för strukturstrukturen, för det andra till din kod, initiera den strukturen med information om den andra presidenten, John Adams, som invigdes 1797. Visa innehållet i båda strukturerna.
Så här skapar du en rad olika strukturer
Skapa enstaka strukturvariabler, en efter en, är lika tråkig och slösad som att skapa en serie av en viss variabel typ. Lösningen för flera strukturer är densamma som för flera individuella variabler: en array.
En strukturuppsättning förklaras så här:
struct scorespelare [4];
Detta uttalande förklarar en rad olika resultatstrukturer. Arrayen är namngiven spelare, och den innehåller fyra strukturvariabler som dess element.
Konstruktionerna i arrayen nås genom att använda en kombination av array och strukturnotering. Till exempel:
spelare [2]. namn
Variabeln i föregående rad öppnar namnet medlem i det tredje elementet i spelarstrukturstrukturen. Ja, det är det tredje elementet eftersom det första elementet skulle refereras så här:
spelare [0]. namn
Arrays börjar numrera med elementet 0, inte element 1.
Linje 10 i Arrays of Structures förklarar en uppsättning av fyra poängstrukturer. Arrayen är namngiven spelare. Linjerna 13 till 19 fyller varje struktur i matrisen. Linjerna 21 till och med 27 visar varje strukturens medlemsvärden.
STRATEGORIERNA
#include int main () {struct poäng {char name [32]; int poäng;}; struct scores spelare [4]; int x; för (x = 0; x <4; x ++) {printf ("Ange spelare% d:", x + 1); scanf ("% s", spelare [x].namn); printf ("Ange deras poäng:"); scanf ("% d", och spelare [x]. poäng);} sätter ("Player Info"); printf ("# tNametScoren"); för (x = 0; x <4; x ++) {printf ("% dt% st% 5dn", x + 1, spelare [x]. namn, spelare [x].
Övning 4 : Skriv källkoden från Array of Structures till din redaktör. Bygg och kör programmet. Försök att hålla poängen till färre än fem siffror så att de stämmer ordentligt.
Övning 5 : Lägg till kod till Arrays of Structures så att visning av strukturer sorteras med högsta poäng som listas först. Ja, du kan göra det här. Att sortera en rad strukturer fungerar precis som att sortera någon annan matris.
Här är ett tips: Lösningens linje 27 ser ut så här:
spelare [a] = spelare [b];
Du kan byta strukturelementelementen precis som du kan byta alla matriselement. Du behöver inte byta strukturvariabelns medlemmar.