Inleiding tot aanwijzers in C

In C of andere programmeertalen hebben we een concept van variabele. Deze variabelen worden gebruikt om waarden erin te houden. Men kan dergelijke variabelen gebruiken tijdens het programmeren. Er zijn echter weinig taken waarvoor geen variabelen nodig zijn, maar waarvoor het adres van die variabelen nodig is. Het adres van variabelen betekent de werkelijke geheugenlocatie waar deze variabelen bestaan. In dit onderwerp gaan we meer leren over Pointers in C. We kunnen pointer definiëren als een type variabele die het adres bevat van elke andere variabele die mogelijk een waarde heeft

Gebruik van pointers in programmeertalen en C

Laten we nu bespreken dat waarin we eigenlijk een wijzer nodig hebben. Er zijn veel taken, zoals dynamische geheugentoewijzing waarvoor pointers nodig zijn tijdens het programmeren in C. Met behulp van pointers kan een dergelijke taak gemakkelijk worden uitgevoerd

Verschillende manieren om toegang te krijgen tot een variabel adres in C

Laat ons proberen te weten wat de verschillende manieren zijn waarop we het adres van een variabele in C kunnen afdrukken.

Er zijn twee manieren waarop we het adres van een variabele kunnen afdrukken. Die twee methoden zijn:

  1. Door de methode ampersand (&) te gebruiken
  2. Door aanwijzer te gebruiken

Laten we elke methode met een voorbeeld bekijken

1. Door de methode ampersand (&) te gebruiken

In deze methode gebruiken we het concept van de ampersand om het adres van een variabele af te drukken

Laten we dit met een voorbeeld bekijken

#include
int main () (
double varNumValue= 10.2;
char varTextValue(10) = “abc”;
printf("The address of variable varNumValue: %x\n", &varNumValue );
printf("varTextValue variable address is : %x\n", &varTextValue );
return 0;
)

Kopieer nu het bovenstaande codefragment en voer het uit

Het zal de volgende uitvoer tonen:

The address of variable varNumValue: a0665a48
The address of variable varTextValue is : a0665a3e

Hoewel, je zou de andere waarde kunnen zien die willekeurig wordt toegewezen tijdens het uitvoeren van het voorbeeld

Het bovengenoemde voorbeeld wordt niet veel gebruikt, maar het is de moeite waard om te weten. Laten we nu eens kijken naar het andere concept dat we in dit onderwerp bespreken.

2. Door aanwijzer te gebruiken

Dit is een moderne benadering om toegang te krijgen tot het adres van een variabele. Voordat u pointer gebruikt, laat ons de algemene syntaxis weten van het aangeven van een pointer

  • De algemene syntaxis van het declareren van een aanwijzer - Een algemene syntaxis die we gebruiken voor het declareren van een variabele is:

data_type *variable

Dit is een gebruikelijke manier om elke aanwijzer in C te declareren, hier staat data_type voor het type van de variabele waarvan het adres moet worden opgeslagen. * geeft aan dat de gedeclareerde variabele een pointer is. een variabele wordt eenvoudig gebruikt om toegang te krijgen tot de waarde

Een eenvoudig voorbeeld hiervan is:

double *var_text

Nadat we het concept van de algemene syntaxis van het aangeven van een pointer hebben besproken , laat ons weten hoe we een pointer kunnen gebruiken bij het programmeren

Om een ​​aanwijzer in C te gebruiken, moet je in principe de volgende drie stappen volgen:

  • Definiëren van pointer variabele
  • Het adres toewijzen van de variabele waarvan we het adres in de pointervariabele willen houden
  • Als we nu een pointervariabele met het adres hebben, kunnen we de waarde van de variabele weer ophalen uit het adres dat in de pointer is opgeslagen. Dit kan met * in C. * is gewoon een van de unaire operatoren

Laten we de bovengenoemde stappen met een voorbeeld gebruiken en dan zullen we dit voorbeeld stap voor stap toelichten

Voorbeeld

#include
int main () (
int varNumValue = 10;
int *ipointervarNumValue;
ipointervarNumValue = &varNumValue;
printf("Address of the variable varNumValue is: %x\n", &varNumValue );
printf("Address stored in the variable ipointervarNumValue is: %x\n", ipointervarNumValue);
printf("Value of the variable *ipointervarNumValue is: %d\n", *ipointervarNumValue );
return 0;
)

Kopieer nu het bovenstaande codefragment en voer het uit

Het zal de volgende uitvoer tonen:

Address of the variable varNumValue is: bf7b7f94
Address stored in the variable ipointervarNumValue is: bf7b7f94
Value of the variable *ipointervarNumValue is: 10

Laten we nu proberen het bovenstaande voorbeeld te begrijpen

De regel int varNumValue = 10; declareert eenvoudig een variabele met waarde 10

De tweede regel die ernaast is: int * ipointervarNumValue; wordt eenvoudig verklaard om het adres van de variabele op te slaan

Het volgende codefragment is: ipointervarNumValue = & varNumValue; wordt gebruikt om het adres van de variabele te bevatten. Hier gebruiken we het concept van ampersand dat we eerder in dit artikel hebben besproken

Nu kunnen we eenvoudig de waarde krijgen en een aanwijzer in ons codefragment gebruiken

Laten we nu eens kijken naar verschillende soorten aanwijzers in C

Typen aanwijzers in C

Er zijn verschillende soorten aanwijzers in C. De basistypen van aanwijzers die over het algemeen worden gebruikt, zijn:

  • Nul punten
  • Bungelende Aanwijzer
  • Algemene aanwijzingen
  • Wilde aanwijzer

Laten we elk uitleggen

1. Null-aanwijzer: een null-aanwijzer is een type aanwijzer dat op niets wijst. Het verwijst meestal naar het basisadres van het segment. Als er niets aan de aanwijzer is toegewezen, heeft deze een nulwaarde

Het wordt meestal gebruikt in header-bestanden zoals stdio.h, alloc.h

2. Dangler-aanwijzer: dit type aanwijzer kan worden gemaakt door het object te verwijderen zonder de aanwijzerwaarde te wijzigen

3. Algemene aanwijzer: dit type aanwijzer wordt gedeclareerd met een variabele van het type void. Omdat het van het lege gegevenstype is, wordt het een generieke aanwijzer genoemd. Dit type aanwijzer verwijst niet naar gegevens

4. Wilde aanwijzer: een niet-geïnitialiseerde aanwijzer staat bekend als een wilde aanwijzer. Dit type aanwijzer wordt tijdens runtime geïnitialiseerd wanneer deze moet worden gebruikt. Dit type aanwijzer staat bekend als wilde aanwijzer

Conclusie

Aanwijzers in C worden gebruikt om naar het adres van de variabele te wijzen. Deze variabelen worden gebruikt voor de dynamische toewijzing van geheugen in C. Deze variabelen worden aangegeven met een asterisk om aan te geven dat de variabele een pointer is. Deze worden in het headerbestand gebruikt bij het programmeren.

Aanbevolen artikelen

Dit is een gids voor Pointers in C. Hier bespreken we de verschillende soorten en gebruiken van pointers in C met methoden en voorbeelden. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Wat is een programmeertaal?
  2. C versus C ++
  3. Patronen in C-programmering
  4. Beste C-compilers
  5. Handleiding voor pointers in C ++
  6. Aanwijzingen in C # met voorbeelden