Pekere i C Programmering med eksempler

En peker er en variabel som lagrer adressen til en annen variabel. I motsetning til andre variabler som inneholder verdier av en bestemt type, holder pekeren adressen til en variabel. For eksempel holder en heltalsvariabel (eller du kan si lagrer) en heltalsverdi, men en heltalspeker inneholder adressen til en heltallsvariabel. I denne guiden vil vi diskutere pekere i C-programmering ved hjelp av eksempler.

Før vi diskuterer pekere i C, kan vi ta et enkelt eksempel for å forstå hva vi mener med adressen til en variabel.

Et enkelt eksempel for å forstå hvordan du får tilgang til adressen til en variabel uten pekere?

I dette programmet har vi en variabel antall int-type. Verdien på num er 10, og denne verdien må lagres et sted i minnet, ikke sant? En minneplass er tildelt for hver variabel som har verdien til den variabelen, denne minneplassen har en adresse. For eksempel bor vi i et hus, og huset vårt har en adresse som hjelper andre mennesker med å finne huset vårt. På samme måte som verdien til variabelen lagres i en minneadresse, noe som hjelper C-programmet med å finne den verdien når den er nødvendig.

Så la oss si at adressen som er tildelt variabelen num er 0x7fff5694dc58, som betyr at hvilken verdi vi vil tildele num skal lagres på stedet: 0x7fff5694dc58. Se diagrammet nedenfor.

Utgang:

Value of variable num is: 10Address of variable num is: 0x7fff5694dc58

Et enkelt eksempel på pekere i C

Dette programmet viser hvordan en peker blir deklarert og brukt. Det er flere andre ting vi kan gjøre med pekepinner, vi har diskutert dem senere i denne guiden. Foreløpig trenger vi bare å vite hvordan vi knytter en peker til adressen til en variabel.

Viktig å merke seg er: Datatypen pekeren og variabelen må samsvare, en int-peker kan inneholde adressen til int-variabelen, på samme måte kan en peker deklarert med flytdatatype inneholde adressen til en flytvariabel. I eksemplet nedenfor er pekeren og variabelen begge av int-type.

Utgang:

Address of variable num is: 0x7fff5694dc58

C-pekere – Operatører som brukes med pekere

La oss diskutere operatorene & og * som brukes med pekere i C.

«Adresse til» (&) Operatør

Vi har allerede sett i det første eksemplet at vi kan vise adressen til en variabel ved hjelp av ampersand Jeg har brukt & num for å få tilgang til adressen til variabelen num. & -operatøren er også kjent som «Adresse» til operatøren.

printf("Address of var is: %p", &num);

Merk:% p er et format spesifiserende som brukes til å vise adressen i hex-format.
Nå som du vet hvordan du får adressen til en variabel, men hvordan lagrer du adressen i en annen variabel? Det er her pekere kommer inn i bildet. Som nevnt i begynnelsen av denne veiledningen brukes pekere i C-programmering til å holde adressen til en annen variabel.

Pekeren er akkurat som en annen variabel, den viktigste forskjellen er at den lagrer adressen til en annen variabel i stedet for en verdi.

«Verdi ved adresse» (*) Operatør

* Operatøren er også kjent som Verdi ved adresseoperatør.

Hvordan deklarere en peker ?

Ovennevnte er noen få eksempler på pekererklæringer. Hvis du trenger en peker for å lagre adressen til heltallvariabelen, skal datatypen til pekeren være int. Samme tilfelle er med de andre datatypene.

Ved å bruke * operator kan vi få tilgang til verdien til en variabel gjennom en peker.
For eksempel:

double a = 10;double *p;p = &a;

* p vil gi oss verdien av variabelen a. Følgende uttalelse vil vise 10 som utdata.

printf("%d", *p);

Tilsvarende hvis vi tildeler en verdi til * pekeren slik:

*p = 200;

Det ville endre verdien på v ariable a. Uttalelsen ovenfor vil endre verdien på a fra 10 til 200.

Eksempel på peker som viser bruken av & og *

Output :

Value of variable var is: 10Value of variable var is: 10Address of variable var is: 0x7fff5ed98c4cAddress of variable var is: 0x7fff5ed98c4cAddress of pointer p is: 0x7fff5ed98c50

La oss ta noen flere eksempler for å forstå det bedre –
La oss si at vi har en char-variabel ch og en peker ptr som inneholder adressen til ch.

char ch="a";char *ptr;

Les verdien av ch

printf("Value of ch: %c", ch);orprintf("Value of ch: %c", *ptr);

Endre verdien på ch

ch = "b";or*ptr = "b";

Koden ovenfor erstatter verdien a med b .

Kan du gjette utdataene fra følgende C-program?

Utgang:

Address of var is: 0x7fff5d027c58Address of var is: 0x7fff5d027c58Value of var is: 10Value of var is: 10Value of var is: 10Value of pointer p is: 0x7fff5d027c58Address of pointer p is: 0x7fff5d027c50

Flere emner på pekere

1) Peker til peker – En peker kan peke på en annen peker (som betyr at den kan lagre adressen til en annen peker), slike pekere er kjent som dobbeltpeker ELLER peker til peker.

2) Overføring av pekere til funksjon – Pekere kan også sendes som et argument til en funksjon. Ved å bruke denne funksjonen kan en funksjon kalles ved referanse, så vel som en matrise kan sendes til en funksjon mens du ringer.

3) Funksjonspekere – En funksjonspeker er akkurat som en annen peker, den brukes til å lagre adressen til en funksjon. Funksjonspeker kan også brukes til å ringe en funksjon i C-program.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *