? Programmører bruger C programmeringssprog for systemer software og lav-niveau kode. På grund af dette , er en af mulighederne i C skabelsen af komplekse datastrukturer . Disse strukturer indeholder data indsamles sammen , ofte repræsenterer et større stykke af data med mange relevante værdier. Adgang disse værdier betyder refererer dem med den struktur ved hjælp enten af den særlige " dot " og " pil" notationer ( afhængigt af situationen ) . C Structures
Oprettelse af en kompleks datatype i C indebærer at skabe hvad der er kendt som en struktur , ved hjælp af " struct " søgeord . Disse strukturer vil sædvanligvis indeholde to eller flere datavariabler , og repræsenterer en sammenhængende datatype ( snarere end blot fungerer som en samling af tilfældige data ) . For eksempel viser nedenstående C struktur et knudepunkt i et større datastruktur , og indeholder et stykke data , og en pegepind til en anden struktur af samme type :
struct Node { nær
int data = 1;
struct * Node næste ,
};
Pointers
Inden for " Node" struktur eksisterer en pointer til en anden node struktur . Henvisninger til strukturer er meget almindeligt , når de passerer struktur variabler til funktioner. De er også en faktor, når beslutningen om, hvilke notation en programmør skal bruge til at referere struktur data. Pointers skaber en hukommelse henvisning til en datatype, snarere end at skabe en lavvandet variabel for datatype. Så i det følgende eksempel , erklærer den første erklæring en variabel struktur i en lokal rækkevidde , hvilket betyder at det skal kopieres og flyttes rundt. Den anden erklæring erklærer en pointer til en struktur i hukommelsen, der giver mulighed for ting som dynamisk allokering af hukommelse :
struct Node x ;
struct * Node y ,
KAYAK Dot notation
notation der kræves for at få adgang til data i konstruktioner afhænger af konteksten af strukturen. Hvis programmøren erklærer en struktur variabel som en lokal variabel , så hun vil få adgang til data via dot notation. Dot notation blot forbinder en struktur variabel og en struktur data medlem gennem en prik symbol ( ".") . De følgende eksempler viser, hvordan programmøren ville hente data fra en Node variabel via dot notation : Hej
struct Node x ;
int j = x.data //j nu er lig en
Arrow Notation
anden sammenhæng til at hente data fra strukturer er, når programmøren har en pointer til en struktur snarere end en lokal variabel . Når programmøren skaber en pointer til en struktur , to ting skal ske. Først skal hun erklære struktur pointer. For det andet , skal hun allokere hukommelse for at viseren referencer hukommelse med den rette størrelse . Derefter kan hun bruge pil notation ( "->" ) for at få adgang til data : Hej
struct * Node y ,
y = malloc ( sizeof ( struct Node ) ) //allokerer hukommelse til y i størrelsen af en Node struct
int j = y -> data //heltal j nu er lig en