references c
Maak kennis met de manieren om referenties in C ++ te declareren en te gebruiken.
Verwijzing is een belangrijk concept in programmeertaal C ++. Hoewel het niet zo sterk is als aanwijzingen, kunnen we het toch gebruiken om efficiënte programma's te schrijven. Het belangrijkste gebruik van de referentievariabele is het doorgeven van parameters aan functies.
De populaire 'pass by reference'-techniek voor het doorgeven van parameters maakt gebruik van referenties. In deze tutorial zullen we zien wat een referentie is, en hoe we deze kunnen declareren en gebruiken. We zullen ook de verschillen tussen verwijzingen en verwijzingen bespreken, evenals een verwijzing naar / van functies doorgeven en retourneren.
Zie hier om de volledige lijst met C ++ - zelfstudies te verkennen.
Wat je leert:
- Wat is een referentie?
- Referentievariabelen declareren
- Referentie versus pointers
- Verwijzingen naar functies doorgeven
- Terugkerende referenties
- Gevolgtrekking
- Aanbevolen literatuur
Wat is een referentie?
Referentie is een alias of een andere naam voor een variabele. Gegeven een variabele met een identifier, kunnen we een andere identifier aan deze variabele geven, zodat we naar deze variabele kunnen verwijzen met zijn originele naam of een andere naam. Deze ‘andere naam’ is wat wordt genoemd als referentie.
Stel dat we een variabele ‘i’ hebben met waarde 17. Als j een referentie is, dan wordt de geheugenrepresentatie van variabele i en referentie j hieronder getoond.
Zoals weergegeven in de bovenstaande afbeelding, verwijzen een variabele en zijn alias, d.w.z. referentiepunt naar dezelfde waarde.
Referentievariabelen declareren
Een referentie kan worden gedeclareerd met de ‘&’ operator.
De referentieverklaring wordt hieronder weergegeven.
Dus in de bovenstaande code hebben we een integervariabele gedeclareerd met waarde 10. Vervolgens declareren we een andere variabele refvar en wijzen we er een variabele aan toe. Merk op dat bij het declareren van refvar, we de operator & hebben gebruikt net voor de variabelenaam. Dit geeft aan dat refvar een verwijzing is naar een reeds bestaande variabele.
We kunnen naar de variabele ‘a’ verwijzen door de variabelenaam a of de referentienaam ‘refvar’ te gebruiken.
kwaliteitscontrole interviewvragen en antwoorden pdf
Hieronder vindt u een eenvoudig voorbeeld van verwijzingen:
Uitgang:
Leeftijd: 22
NumYears: 22
Salaris: 10000
Loon: 10000
In de bovenstaande code hebben we een integer-variabele leeftijd. Vervolgens declareren we een referentie-integervariabele numYears voor de leeftijdsvariabele. We hebben nog een variabel salaris van het type double. Vervolgens geven we een dubbel referentie variabel loon aan bij het variabel salaris.
Vervolgens drukken we de variabelen af, eerst de leeftijd, daarna de referentie, gevolgd door het salaris en de referentie. Als we de output van het programma controleren, begrijpen we die variabele en een verwijzing ernaar verwijst naar dezelfde waarde en dus hebben Leeftijd en aantalJaren, evenals salaris en lonen, dezelfde waarden.
hoe open je een apk-bestand
Referentie versus pointers
In vergelijking met verwijzingen zijn verwijzingen veiliger en gemakkelijker te gebruiken.
We zullen enkele verschillen tussen verwijzingen en referenties bespreken:
- In tegenstelling tot pointers, kunnen referenties geen null-waarde hebben. Het is verplicht dat referenties een waarde krijgen toegewezen.
- Verwijzingen worden geïnitialiseerd op het moment dat ze worden gemaakt. In tegenstelling tot dit, kunnen pointers op elk moment worden geïnitialiseerd en niet noodzakelijk tijdens de aangifte.
- Aanwijzers kunnen gemakkelijk aan de waarden worden toegewezen. Maar met referenties kunnen we dit niet doen. Zodra een waarde van de variabele is toegewezen, d.w.z. zodra een alias van een variabele is gemaakt, kunnen we geen andere variabele aan deze referentie toewijzen.
- We hebben geen ongeldige referenties. Een verwijzing is per definitie een alias voor de variabele en wordt geïnitialiseerd tijdens het aanmaken zelf. Er is dus geen kans dat we een ongeldige referentie hebben en later een variabele met een concreet gegevenstype eraan toewijzen. Daarentegen kunnen we ongeldige verwijzingen hebben.
Vanwege deze hierboven besproken beperking, kunnen de verwijzingen in C ++ niet worden gebruikt met datastructuren zoals een gekoppelde lijst. Houd er rekening mee dat we in Java niet al deze beperkingen of beperkingen op verwijzingen hebben.
Verwijzingen naar functies doorgeven
In onze vorige tutorials over functies hebben we de parametermethode ‘pass by reference’ al besproken en we hebben het verwisselen van twee getallen bijvoorbeeld gezien met deze techniek. We slaan de uitleg van deze techniek in deze paragraaf over en geven alleen nog maar eens een swap-functie als voorbeeld.
Maar deze keer gaan we in plaats van nummers te wisselen twee strings omwisselen.
Uitgang:
str1 = referenties str2 = pointers
Na het omwisselen….
str1 = pointers str2 = referenties
Dus in dit programma geven we strings (char *) door aan de swap-functie. De formele parameters zijn twee verwijzingen naar een variabele van het type char *. We merken op dat wanneer twee waarden worden verwisseld, hun wijziging wordt weerspiegeld in de aanroepende functie, aangezien we referenties / aliassen gebruiken voor parameters.
Terugkerende referenties
Net zoals het retourneren van pointers van functies, kunnen we ook referenties van functies retourneren. Het retourneren van verwijzingen van een functie retourneert ook een impliciete pointer naar de geretourneerde waarde. Om deze reden kan een functie die een verwijzing retourneert, aan de linkerkant van de toewijzing worden gebruikt.
Laten we een voorbeeld geven van het retourneren van een referentie van een functie.
Uitgang:
myarray voor verandering
myarray (0) = 1
myarray (1) = 0
myarray (2) = 2
myarray (3) = 3
myarray (4) = 5
Waarde na verandering
myarray (0) = 1
myarray (1) = 1
myarray (2) = 2
myarray (3) = 8
myarray (4) = 5
Screenshot voor hetzelfde wordt hieronder getoond:
Zoals te zien is in de bovenstaande code, definiëren we een functie setValues die een verwijzing retourneert en een parameter die een geheel getal is. Binnen de functie retourneren we gewoon de arrayverwijzing naar de positie I in C ++.
In de hoofdfunctie drukken we de waarden van de array af. Vervolgens gebruiken we de functie setValues om de waarden van twee elementen in de array te wijzigen. We printen opnieuw de waarde van de array.
Een ding dat we met verwijzingen moeten opmerken, is dat we een functie alleen een verwijzing kunnen laten retourneren als de gegevens statisch of globaal zijn. Het is niet toegestaan om een verwijzing naar een lokale variabele in C ++ te retourneren.
Gevolgtrekking
Lezers moeten er rekening mee houden dat het belangrijkste gebruik van verwijzingen is om parameters door te geven aan functies.
In de komende tutorials zullen we lambda-functies / expressies in C ++ behandelen voordat we naar objectgeoriënteerd programmeren in C ++ gaan.
Bekijk hier de beste C ++ trainingshandleidingen.
Aanbevolen literatuur
- Beste GRATIS C # Tutorial-serie: de ultieme C # -gids voor beginners
- Aanwijzers en aanwijzerbewerkingen in C ++
- Laadtests met HP LoadRunner-zelfstudies
- Variabelen in C ++
- Objectgeoriënteerd programmeren in C ++
- Unix Pipes-zelfstudie: Pipes in Unix-programmering
- Bibliotheekfuncties in C ++
- 70+ BESTE C ++ Tutorials om GRATIS C ++ Programmeren te leren