Wat is Pointer in C?
De Pointer in C is een variabele die het adres van een andere variabele opslaat. Een aanwijzer kan ook worden gebruikt om naar een andere aanwijzerfunctie te verwijzen. Een aanwijzer kan worden verhoogd / verlaagd, d.w.z. om naar de volgende / vorige geheugenlocatie te wijzen. Het doel van pointer is om geheugenruimte te besparen en een snellere uitvoeringstijd te bereiken.
Pointers gebruiken in C
Als we een variabele v van het type int declareren, zal v feitelijk een waarde opslaan.
v is nu gelijk aan nul.
Elke variabele heeft echter, behalve waarde, ook zijn adres (of, simpel gezegd, waar hij zich in het geheugen bevindt). Het adres kan worden opgehaald door een ampersand (&) voor de variabelenaam te plaatsen.
Als u het adres van een variabele op het scherm afdrukt, ziet het eruit als een totaal willekeurig getal (bovendien kan het verschillen van run tot run).
Laten we dit in de praktijk proberen met pointer in C voorbeeld
De output van dit programma is -480613588.
Wat is nu een pointer? In plaats van een waarde op te slaan, slaat een pointer het adres van een variabele op.
Pointervariabele
Int * y = & v;
VARIABEL
|
POINTER
|
Een waarde opgeslagen in een benoemd opslag- / geheugenadres
|
Een variabele die verwijst naar het opslag- / geheugenadres van een andere variabele
|
Een pointer declareren
Zoals variabelen, pointers in C progra mming moeten worden gedeclareerd voordat ze in uw programma kunnen worden gebruikt. Pointers kunnen elke naam krijgen die u maar wilt, zolang ze maar voldoen aan de naamgevingsregels van C. Een pointer-declaratie heeft de volgende vorm.
data_type * pointer_variable_name;
Hier,
- data_type is het basistype van de aanwijzer van de variabeletypes van C en geeft het type variabele aan waarnaar de aanwijzer verwijst.
- De asterisk (*: dezelfde asterisk die voor vermenigvuldiging) wat een indirecte operator is, declareert een pointer.
Laten we enkele geldige pointer-declaraties bekijken in deze C pointers tutorial:
Initialiseer een pointer
Nadat we een pointer hebben gedeclareerd, initialiseren we deze als standaardvariabelen met een variabel adres. Als verwijzingen in C-programmering niet niet worden geïnitialiseerd en in het programma worden gebruikt, zijn de resultaten onvoorspelbaar en mogelijk rampzalig.
Om het adres van een variabele te krijgen, gebruiken we de ampersand (&) operator, geplaatst voor de naam van een variabele waarvan we het adres nodig hebben. Aanwijzerinitialisatie wordt uitgevoerd met de volgende syntaxis.
Pointer-syntaxis
pointer = &variable;
Hieronder wordt een eenvoudig programma voor pointerillustraties gegeven:
Output:
Address stored in a variable p is:60ff08Value stored in a variable p is:10
Operator |
Betekenis |
* |
Heeft twee doelen
- Verklaring van een pointer
- Geeft als resultaat de waarde van de variabele waarnaar wordt verwezen
|
& |
Heeft slechts één doel
- Retourneert het adres van een variabele
|
Typen pointers in C
Hieronder volgen de verschillende soorten pointers in C:
Null Pointer
We kunnen een null-pointer maken door een null-waarde toe te kennen tijdens de pointer-declaratie. Deze methode is handig als er geen adres aan de aanwijzer is toegewezen. Een null-pointer bevat altijd waarde 0.
Het volgende programma illustreert het gebruik van een null-pointer:
#include <stdio.h>int main(){int *p = NULL; //null pointerprintf("The value inside variable p is:\n%x”,p);return 0;}
Output:
The value inside variable p is:0
Void Pointer
In C-programmering wordt een void pointer ook wel een generieke pointer genoemd. Het heeft geen standaard gegevenstype. Een leegte-aanwijzer wordt gemaakt door het trefwoord void te gebruiken. Het kan worden gebruikt om een adres van een willekeurige variabele op te slaan.
Het volgende programma illustreert het gebruik van een void pointer:
#include <stdio.h>int main(){void *p = NULL; //void pointerprintf("The size of pointer is:%d\n",sizeof(p));return 0;}
Output:
The size of pointer is:4
Wild pointer
Van een pointer wordt gezegd dat het een wilde pointer is als hij nergens voor wordt geïnitialiseerd. Dit soort C-aanwijzers zijn niet efficiënt omdat ze kunnen verwijzen naar een onbekende geheugenlocatie die problemen kan veroorzaken in ons programma en het kan leiden tot het crashen van het programma. Men moet altijd voorzichtig zijn bij het werken met wilde wijzers.
Het volgende programma illustreert het gebruik van de wild pointer:
#include <stdio.h>int main(){int *p; //wild pointerprintf("\n%d",*p);return
read more