Innholdsfortegnelse:
Video: How language shapes the way we think | Lera Boroditsky 2025
Du kan tenke på C-programmeringssprogstrukturen som en multivariabel, eller flere variabler rullet inn i en. Du bruker strukturer til å lagre eller få tilgang til komplisert informasjon. På den måten kan du beholde forskjellige int, char, float variabler, og til og med arrayer, alt i en pen pakke.
Grunnleggende om struct
En struktur er ikke en variabel type. I stedet tenk på det som en ramme som inneholder flere variable typer. På mange måter er en struktur lik en post i en database. For eksempel:
Navn Alder Gambling gjeld
Disse tre elementene kan være felt i en databaseoppføring, men de kan også være medlemmer i en struktur: Navn ville være en streng; Alder, et heltall; og Gambling Debt, en usignert flytende poengverdi. Slik ser en slik plate ut som en struktur i C:
struct record {char name [32]; int alder; flyte gjeld;};
struct er et C-språk søkeord som introduserer, definerer eller lager en ny struktur.
posten er navnet på den nye strukturen som blir opprettet.
Innenfor de krøllede parentesene bor strukturens medlemmer, variablene i den navngitte strukturen. Poststrukturstypen inneholder tre elementvariabler: et strengnavn, en intalt alder, og en flytverdi, gjeld.
For å bruke strukturen må du erklære en strukturvariabel av strukturtypen du opprettet. For eksempel:
struct record human;
Denne linjen erklærer en ny variabel av rekordstrukturtypen. Den nye variabelen heter human .
Strukturvariabler kan også deklareres når du definerer strukturen selv. For eksempel:
struct record {char navn [32]; int alder; flyte gjeld;} menneskelig;
Disse uttalelsene definerer rekordstrukturen og erklære en rekordstrukturvariabel, menneske . Flere variabler av denne strukturtypen kan også opprettes:
struct record {char name [32]; int alder; flyte gjeld;} bill, mary, dan, susie;
Fire rekordstrukturvariabler er opprettet i dette eksemplet. Hver variabel har tilgang til de tre medlemmene som er definert i strukturen.
For å få tilgang til medlemmer i en strukturvariabel, bruker du en periode, som er medlemsoperatøren . Den forbinder strukturvariabelenavnet med et medlemsnavn. For eksempel:
printf ("offer:% sn", regningsnavn);
Denne setningen refererer til navnemedlemmet i regningen strukturvariabelen. Et karbonatursystem, det kan brukes i koden din som alle andre karbonatomer. Andre medlemmer i strukturvariabelen kan også brukes som deres individuelle kolleger:
dan.alder = 32;
Slik fyller du i en struktur
Som med andre variabler, kan du tilordne verdier til en strukturvariabel når den er opprettet. Du må først definere strukturtypen og deretter erklære en strukturvariabel med de forhåndsinnstilte medlemsverdiene. Kontroller at de forhåndsdefinerte verdiene samsvarer med rekkefølgen og typen av medlemmer som er definert i strukturen, som vist i Deklarering av en initialisert struktur.
ERKLÆRING AV EN INITIALISERT STRUKTUR
#include int main () {struct president {char navn [40]; int år;}; struct president først = {"George Washington", 1789}; printf ("Den første presidenten var% sn", først. navn); printf ("Han ble innviet i% dn", første år); returnere (0);}
Øvelse 1 : Lag et nytt program ved å skrive kildekoden fra Deklarere en initialisert struktur i redigeringsprogrammet. Bygg og løp.
Du kan også deklarere en struktur og initialisere den i en setning:
struct president {char name [40]; int år;} først = {"George Washington", 1789};
Øvelse 2 : Endre kildekoden fra Øvelse 1 slik at strukturen og variabelen er deklarert og initialisert som en setning.
Selv om du kan erklære en struktur og initialisere en strukturvariabel som bare vist, kan du komme unna med det trikset bare én gang. Du kan ikke bruke teknikken til å erklære den andre strukturvariabelen, som må gjøres på den tradisjonelle måten, som vist i Deklarering av en initialisert struktur.
Øvelse 3 : Legg til en annen presidentstrukturvariabel, for det andre til koden din, og initialiser den strukturen med informasjon om den andre presidenten, John Adams, som ble innviet i 1797. Vis innholdet i begge strukturer.
Hvordan lage en rekke strukturer
Å lage individuelle strukturvariabler, etter hverandre, er så kjedelig og sløsing som å skape en serie av en hvilken som helst variabel type. Løsningen for flere strukturer er den samme som for flere individuelle variabler: en matrise.
En struktureringsgruppe er deklarert slik:
struct scores spiller [4];
Denne erklæringen erklærer en rekke scorestrukturer. Arrayet heter spilleren, og det inneholder fire strukturvariabler som dets elementer.
Konstruksjonene i arrayet er tilgjengelige ved å bruke en kombinasjon av array og struktur notasjon. For eksempel:
spiller [2]. navn
Variabelen i forrige linje åpner navnet på medlemmet i det tredje elementet i spillerstrukturen. Ja, det er det tredje elementet fordi det første elementet ville bli referert som dette:
spiller [0]. navn
Arrays start nummerering med elementet 0, ikke element 1.
Linje 10 i Arrays of Structures erklærer en rekke fire scorestrukturer. Arrangementet heter spilleren. Linjene 13 til og med 19 fyller hver struktur i gruppen. Linjene 21 til og med 27 viser hver enkelt strukturens medlemsverdier.
STRIPTURRÅDER
#include int main () {struct scores {char name [32]; int score;}; struct score spiller [4]; int x; for (x = 0; x <4; x ++) {printf ("Angi spiller% d:", x + 1); scanf ("% s", spiller [x].Navn); printf ("Skriv inn deres poeng:"); scanf ("% d", og spiller [x]. score);} setter ("Player Info"); printf ("# tNametScoren"); for (x = 0; x <4; x ++) {printf ("% dt% st% 5dn", x + 1, spiller [x]. navn, spiller [x].
Øvelse 4 : Skriv kildekoden fra Arrays of Structures til redaktøren din. Bygg og kjør programmet. Prøv å holde poengene til færre enn fem siffer slik at de ordner seg riktig.
Øvelse 5 : Legg til kode i Arrays of Structures slik at visning av strukturer er sortert med den høyeste poengsummen som er oppført først. Ja, du kan gjøre dette. Sortering av en rekke strukturer fungerer akkurat som å sortere noen annen matrise.
Her er et hint: Linje 27 av løsningen ser slik ut:
spiller [a] = spiller [b];
Du kan bytte strukturelementelementer akkurat som du kan bytte alle elementelementer. Du trenger ikke å bytte strukturvariabelens medlemmer.
