Hva er peker i C?
Pekeren i C, er en variabel som lagrer adressen til en annen variabel. En peker kan også brukes til å referere til en annen pekerfunksjon. En peker kan økes / reduseres, dvs. for å peke til neste / forrige minneplassering. Hensikten med pekeren er å spare minne og oppnå raskere utføringstid.
Hvordan bruke pekere i C
Hvis vi erklærer en variabel v av typen int, vil v faktisk lagre en verdi.
v er lik null nå.
Hver variabel har imidlertid, bortsett fra verdi, også sin adresse (eller, enkelt sagt, der den ligger i minnet). Adressen kan hentes ved å sette et ampersand (&) foran variabelnavnet.
Hvis du skriver ut adressen til en variabel på skjermen, vil den se ut som et helt tilfeldig tall (dessuten kan det være forskjellig fra løp til løp).
La oss prøve dette i praksis med pekeren i C eksempel
Resultatet av dette programmet er -480613588.
Nå, hva er en peker? I stedet for å lagre en verdi, vil en peker y lagre adressen til en variabel.
Pekervariabel
Int * y = & v;
VARIABEL
|
PEKER
|
En verdi lagret i en navngitt lagrings- / minneadresse
|
En variabel som peker på lagrings- / minneadressen til en annen variabel
|
Deklarere en peker
Som variabler, pekere i C progra mming må deklareres før de kan brukes i programmet ditt. Pekere kan navngis hva du vil så lenge de overholder Cs navngivningsregler. En pekererklæring har følgende skjema.
data_type * pointer_variable_name;
Her,
- data_type er pekerens basetype av C’s variabeltyper og indikerer typen variabelen som pekeren peker på.
- Stjernen (*: den samme stjernen som ble brukt for multiplikasjon) som er indireksjonsoperator, erklærer en peker.
La oss se noen gyldige pekererklæringer i denne veiledningen for C-pekere:
Initialiser en peker
Etter å ha erklært en peker initialiserer vi den som standardvariabler med en variabel adresse. Hvis pekere i C-programmering ikke er uinitialisert og brukes i programmet, er resultatene uforutsigbare og potensielt katastrofale.
For å få adressen til en variabel, bruker vi ampersand (&) operatøren, plassert foran navnet på en variabel hvis adresse vi trenger. Pekerinitialisering gjøres med følgende syntaks.
Pointer Syntax
pointer = &variable;
Et enkelt program for pekerillustrasjon er gitt nedenfor:
Utgang:
Address stored in a variable p is:60ff08Value stored in a variable p is:10
Operatør |
Betydning |
* |
Serverer 2 formål
- Erklæring om en peker
- Returnerer verdien til den refererte variabelen
|
& |
Serverer bare 1 formål
- Returnerer adressen til en variabel
|
Typer av pekere i C
Følgende er de forskjellige typene pekere i C:
Null Pointer
Vi kan opprette en nullpeker ved å tildele nullverdi under pekerdeklarasjonen. Denne metoden er nyttig når du ikke har tildelt noen adresse til pekeren. En nullpeker inneholder alltid verdien 0.
Følgende program illustrerer bruken av en nullpeker:
#include <stdio.h>int main(){int *p = NULL; //null pointerprintf("The value inside variable p is:\n%x”,p);return 0;}
Utgang:
The value inside variable p is:0
Void Pointer
I C-programmering kalles en tom peker også som en generisk peker. Den har ingen standard datatype. En ugyldig peker opprettes ved å bruke nøkkelordet ugyldig. Den kan brukes til å lagre en adresse til en hvilken som helst variabel.
Følgende program illustrerer bruken av en tom peker:
#include <stdio.h>int main(){void *p = NULL; //void pointerprintf("The size of pointer is:%d\n",sizeof(p));return 0;}
Utgang:
The size of pointer is:4
Villpeker
En peker sies å være en villpeker hvis den ikke initialiseres til noe. Disse typer C-pekere er ikke effektive fordi de kan peke på noe ukjent minneplassering som kan forårsake problemer i programmet vårt, og det kan føre til at programmet krasjer. Man bør alltid være forsiktig når man arbeider med ville pekere.
Følgende program illustrerer bruken av villpekeren:
#include <stdio.h>int main(){int *p; //wild pointerprintf("\n%d",*p);return
read more