using arrays with functions c
Alles wat u moet weten over arrays met functies in C ++:
In deze tutorial zullen we bespreken hoe arrays kunnen worden gebruikt met functies in C ++. Over het algemeen kunnen arrays als argumenten aan functies worden doorgegeven op dezelfde manier als we de variabelen aan functies doorgeven.
Maar de evaluatie van formele parameters is iets anders als het gaat om arrays. Voordat we het doorgeven van arrays aan functies daadwerkelijk gaan onderzoeken, moeten we kort het concept van een pointer naar een array bespreken.
Bekijk hier de diepgaande C ++ trainingshandleidingen.
Wat je leert:
- Wijzer naar een matrix
- Arrays doorgeven aan functie
- Arrays uit functies retourneren
- Gevolgtrekking
- Aanbevolen literatuur
Wijzer naar een matrix
Beschouw de volgende array met de eerste vijf cijfers van de Fibonacci-reeks.
Laten we een pointer fibPtr declareren om deze array aan te wijzen.
Wanneer we de inhoud van fibPtr afdrukken, is de uitvoer het eerste element van de fibSeq-array. Dit komt doordat de naam van de array zonder vierkante haken resulteert in een pointer naar het eerste element van de array. In het bovenstaande voorbeeld verwijst de naam 'fibSeq' dus naar het eerste element van de array 'fibSeq'.
Hieronder is een grafische weergave van hetzelfde:
Zoals getoond in de bovenstaande afbeelding, verwijst fibPtr naar het eerste element van de array. Dus met behulp van de rekenkundige aanwijzer kunnen we alle elementen van de array afdrukken door alleen fibPtr te gebruiken.
Bijvoorbeeld, expression * (fibPtr + 1) verwijst naar het tweede element van de array enzovoort.
bewijs het c # testantwoorden
Laten we dit in een programma stoppen en de uitvoer van 'fibSeq' en 'fibPtr' controleren:
Uitgang:
fibSeq verwijst naar: 1
fibSeq (0): 1
fibSeq (1): 1
fibSeq (2): 2
fibSeq (3): 3
fibSeq (4): 5
In het bovenstaande voorbeeld declareren we een pointervariabele fibPtr en laten deze vervolgens de array wijzen door de naam van de array toe te wijzen aan fibPtr. Wanneer we dit doen, laten we de fibPtr naar het eerste element van de array wijzen. Vervolgens drukken we alle waarden van een array af met fibPtr.
Arrays doorgeven aan functie
Als we te maken hebben met functies, geven we arrays door aan de functie op dezelfde manier als we variabelen doorgeven om te functioneren. Maar we geven de arrayvariabele van het type () niet door.
In plaats daarvan geven we de pointer door aan de array, d.w.z. de naam van de array die naar het eerste element van de array verwijst. Dan is de formele parameter die deze pointer accepteert eigenlijk een arrayvariabele. Als we de aanwijzer passeren, kunnen we de array binnen de functie direct wijzigen.
Beschouw het volgende programma dat het kwadraat van elk element van de eerste vijf elementen in de Fibonacci-reeks berekent om het doorgeven van een array aan functie te demonstreren.
In het bovenstaande voorbeeld berekenen we het kwadraat van elk element in een Fibonacci-reeks. Dit kwadraat wordt binnen een functie berekend. Daarom geven we de arraynaam door aan de functie “fibSeqSquare” terwijl we de functie aanroepen vanuit main. Binnen de functie berekenen we de kwadraten van elk element.
Aangezien we de verwijzing naar de array via een aanwijzer hebben doorgegeven, zullen alle wijzigingen die we aanbrengen in de array binnen de functie, de array weerspiegelen. Dus als we de array in de hoofdfunctie afdrukken, krijgen we de vierkanten van elk element als uitvoer.
In het bovenstaande voorbeeld hebben we gezien dat het array-argument (formele parameter) van de functie fibSeqSquare niet de grootte van de array specificeert, maar alleen de vierkante haken (()) om aan te geven dat het een array is. Dit is een manier om de array-argumenten op te geven.
Een andere manier om het array-argument in de formele parameterlijst te specificeren, is door de grootte van de array tussen vierkante haken op te geven. Beide argumenten werken op dezelfde manier. Dit zijn gewoon de twee manieren waarop we de array-argumenten specificeren.
Het volgende voorbeeld toont een Array-argument dat is opgegeven met size.
Het bovenstaande voorbeeld heeft een functie om de Fibonacci-reeks weer te geven. De functie heeft een parameter als een array waarin we ook de grootte van de array hebben gespecificeerd.
We kunnen ook multidimensionale arrays doorgeven aan functies op dezelfde manier als hierboven weergegeven.
hoe u een beveiligingssleutel voor wifi kunt krijgen
Arrays uit functies retourneren
Als het gaat om het retourneren van een array van een functie, staat C ++ ons niet toe om een volledige array van de functie te retourneren. We kunnen echter een functie maken om een pointer naar de array te retourneren. Maar er zit een addertje onder het gras.
Beschouw het volgende stuk code:
Hoewel het bovenstaande programma simpelweg de pointer naar het eerste element van een array van de functie teruggeeft, werkt het niet zoals verwacht. We kunnen niet garanderen dat het programma ons de juiste output zal geven. Het kan al dan niet de juiste output geven.
Dit komt doordat we de lokale variabele from function retourneren en we niet zeker weten of het binnen bereik zal zijn tegen de tijd dat het wordt geretourneerd of niet.
Kortom, C ++ geeft geen voorkeur aan het retourneren van arrays van functies.
Als we arrays van de functie moeten retourneren, moeten we een van de volgende methoden gebruiken:
# 1) Dynamisch toegewezen arrays retourneren
We kunnen de array-pointer retourneren van de dynamisch toegewezen array. We gebruiken de operator ‘nieuw’ om de array dynamisch toe te wijzen. Omdat het een dynamische array is, valt het binnen het bereik, tenzij we de array ‘verwijderen’. Daarom werkt het programma prima als we de array retourneren.
Dit wordt getoond in het volgende voorbeeld.
Uitgang:
1 2 3
# 2) Statische arrays retourneren
Omdat statische variabelen / arrays een bereik hebben in het hele programma, kunnen we ook statische arrays van functies retourneren. We kunnen een voorbeeld nemen om dit aan te tonen. Dit is hetzelfde als het vorige voorbeeld, met het enige verschil dat we in dit voorbeeld een statische array hebben gebruikt in plaats van de dynamisch toegewezen array.
Uitgang:
1 2 3
Opmerking : We kunnen ook een structuur gebruiken om de array erin te wikkelen en die structuur vervolgens terug te geven. Op deze manier retourneren we natuurlijk een array van een functie. Maar dit is niet een erg haalbare methode om arrays te retourneren.
c ++ binaire zoekboomimplementatie
Gevolgtrekking
Daarom hebben we in deze tutorial arrays met betrekking tot functies in detail besproken. We hopen dat deze tutorial zou hebben geholpen om alle twijfels en misvattingen over C ++ arrays en functies weg te nemen.
Bekijk hier de perfecte C ++ trainingsgids.