Programmeurs gebruiken de C programmeertaal voor systeemsoftware en low - level code . Vanwege dit , een van de mogelijkheden van C is de vorming van complexe gegevensstructuren . Deze structuren bevatten gegevens verzameld samen , vaak neerkomt op een groter stuk van de gegevens met vele relevante waarden . Toegang tot deze waarden betekent verwijzen ze met de structuur met behulp van de speciale "dot " en " pijl " notaties ( afhankelijk van de situatie ) . Structuren C Het creëren van een complexe data type in C omvat het maken van wat bekend staat als een structuur , met behulp van de " structuur " keyword . Deze structuren bevatten meestal twee of meer data variabelen , en vormen een samenhangend gegevenstype ( in plaats van alleen als een verzameling van willekeurige gegevens ) . Bijvoorbeeld , de volgende C structuur een knooppunt in groter gegevensstructuur en bevat een gegevens- en een pointer naar een structuur van hetzelfde type : struct Node { int data = 1 ; struct * Node volgende ; } ; Pointers Binnen de " Node " structuur bestaat een pointer naar een ander knooppunt structuur . Pointers naar structuren komen zeer vaak voor bij het passeren structuur variabelen aan functies . Ze zijn ook een factor bij de beslissing welke notatie een programmeur moet gebruiken om structuur data verwijzen . Pointers maken een herinnering verwijzing naar een data type , in plaats van het creëren van een ondiepe variabele voor het soort data . Dus in het volgende voorbeeld , de eerste verklaring verklaart een variabele structuur in een lokaal bereik , wat betekent dat gekopieerd moet worden en verplaatst . De tweede verklaring verklaart een pointer naar een structuur in het geheugen die het mogelijk maakt dingen zoals dynamische geheugen allocatie : struct Node x ; struct * Node y ; Dot Notation de notatie vereist voor toegang tot de gegevens in de structuren afhankelijk van de context van de structuur . Als de programmeur verklaart een structuur variabele als een lokale variabele , dan zal zij toegang hebben tot gegevens via puntnotatie . Puntnotatie verbindt gewoon een structuur variabele en een structuur gegevenslid via een stip symbool ( " . " ) . De volgende voorbeelden laten zien hoe de programmeur gegevens van een Node variabele zou halen via puntnotatie : struct Node x ; int j = x.data ; //j nu gelijk is Arrow Notation andere context voor het ophalen van data structuren wanneer de programmeur een pointer naar een structuur in plaats van een lokale variabele . Wanneer de programmeur wordt een pointer naar een structuur , twee dingen gebeuren . Ten eerste moet zij verklaren de structuur aanwijzer . Ten tweede moeten ze geheugen zodat de wijzer verwijzingen geheugen met de juiste afmetingen toewijzen . Dan kan ze pijl notatie ( " - > " ) toegang tot gegevens : struct * Node y ; y = malloc ( sizeof ( struct Node ) ) op ; //wijst geheugen naar y in de grootte van een Node struct int j = y - > data ; //integer j nu gelijk is
|