? Programmerere bruker programmeringsspråket C for systemer programvare og lavnivå-kode . På grunn av dette er en av egenskapene til C dannelsen av komplekse datastrukturer. Disse strukturene inneholder data samles sammen , ofte representerer en større bit av data med mange relevante verdier. Tilgang til disse verdiene betyr henviser dem med strukturen ved hjelp av enten av den spesielle " dot " og "Arrow" notasjoner ( avhengig av situasjonen ) . C Structures
Opprette en kompleks datatype i C innebærer å skape det som er kjent som en struktur , med " struct " søkeord . Disse strukturer vil vanligvis inneholde to eller flere variable data , og representere en sammenhengende datatype ( i stedet for bare å opptre som en samling av tilfeldige data ) . For eksempel representerer den følgende struktur C en node i et større datastruktur , og inneholder en del av data , og en peker til en annen struktur av samme type : en
struct { Node
int data = 1 ,
struct * Node neste ;
};
pekere
Innenfor " Node" struktur finnes et pekeren til en annen node struktur . Pekere til strukturer er svært vanlig når du passerer struktur variabler til funksjoner . De er også en faktor når du bestemmer hvilken notasjon en programmerer bør bruke for å referere strukturere data . Pekere lage et minne referanse til en datatype , snarere enn å skape et grunt variabel for datatype . Så i følgende eksempel , erklærer den første erklæringen en variabel struktur i en lokal omfang, noe som betyr at det må kopieres og flyttes rundt . Den andre erklæringen erklærer en peker til en struktur i minne som gjør ting som dynamisk minne allokering :
struct Node x ;
struct * Node y ;
Dot Notation
notasjon som kreves for å få tilgang til data i strukturer avhenger av konteksten av strukturen. Hvis programmereren erklærer en struktur variabel som en lokal variabel , så hun vil få tilgang til data gjennom dot -notasjon. Dot notasjon kobler rett og slett en struktur variabel og en struktur data medlem gjennom en prikk symbol ( " . ") . Eksemplene nedenfor viser hvordan programmerer vil hente data fra en Node variabel gjennom dot -notasjon : en
struct Node x ;
int j = x.data ; //j nå tilsvarer en
Arrow Notation
annen sammenheng for å hente data fra strukturer er når programmerer har en peker til en struktur snarere enn en lokal variabel . Når programmerer oppretter en peker til en struktur , to ting må skje . Først må hun erklære strukturen pekeren . Sekund, må hun allokere minne slik at pekeren referanser minne med riktig størrelse. Deretter kan hun bruke pil notasjon ( "- > ") for å få tilgang til data : en
struct * Node y ;
y = malloc ( sizeof ( struct Node ) ), //tildeler minne til y i størrelsen på en Node struct
int j = y -> data , //heltall j nå tilsvarer en