Pekere er kraftige funksjoner i C- og C ++ -programmering. Før vi lærer pekere, la oss lære om adresser i C-programmering.
Adresse i C
Hvis du har en variabel var i programmet ditt, &var
vil gi deg adressen i minnet.
Vi har brukt adresse flere ganger mens vi brukte scanf()
-funksjonen.
Her lagres verdien av brukeren i adressen til variabel. La oss ta et fungerende eksempel.
Output
var: 5 address of var: 2686778
Merk: Du vil sannsynligvis få en annen adresse når du kjører ovennevnte kode.
C Pekere
Pekere (pekervariabler) er spesielle variabler som brukes til å lagre adresser i stedet for verdier.
Pekersyntaks
Slik kan vi erklære pekere.
Her har vi erklært en peker p av int
type.
Du kan også erklære pekere på disse måtene.
La oss ta et annet eksempel på å erklære pekere.
Her har vi erklært en peker p1 og en normalvariabel p2.
Tilordne adresser til pekere
La oss ta et eksempel.
Her tildeles 5 variabelen c. Og adressen til c er tildelt pc-pekeren.
Få verdi av ting pekt av pekere
For å få verdien av det som pekerne peker på, bruker vi *
operatør. For eksempel:
Her tildeles adressen til c
pc-pekeren. For å få verdien som er lagret i den adressen, brukte vi * pc.
Merk: I eksemplet ovenfor er pc en peker, ikke *pc
. Du kan ikke og bør ikke gjøre noe sånt som *pc = &c
;
Forresten kalles *
dereference-operatøren ( når du arbeider med pekere). Den fungerer på en peker og gir verdien som er lagret i pekeren.
Endring av verdi peket av pekere
La oss ta et eksempel.
Vi har tildelt adressen til c til pc-pekeren.
Deretter endret vi verdien av c til 1. Siden pc og adressen til c er det samme, *pc
gir oss 1.
La oss ta et annet eksempel.
Vi har tildelt adressen til c til pc-pekeren.
Deretter endret vi *pc
til 1 ved hjelp av *pc = 1;
. Siden pc og adressen til c er den samme, vil c være lik 1.
La oss ta ett eksempel til.
I utgangspunktet adressen til c er tilordnet pc-pekeren ved hjelp av pc = &c;
. Siden c er 5, gir *pc
oss 5.
Deretter tildeles adressen til d pc-pekeren ved hjelp av pc = &d;
. Siden d er -15, gir *pc
oss -15 .
Eksempel: Arbeid med pekere
La oss ta et arbeidseksempel.
Output
Address of c: 2686784Value of c: 22Address of pointer pc: 2686784Content of pointer pc: 22Address of pointer pc: 2686784Content of pointer pc: 11Address of c: 2686784Value of c: 2
Forklaring av programmet
-
int* pc, c;
Her , opprettes en peker-pc og en normalvariabel c, begge av typenint
-
c = 22;
Dette tilordner 22 til variabelen c. Det vil si at 22 er lagret i minneplasseringen til variabelen c. -
pc = &c;
Dette tilordner adressen til variabelen c til pekeren pc. -
c = 11;
Dette tilordner variabel c. 11. -
*pc = 2;
Dette endrer verdien på minnestedet som pekeren pc peker til 2.
Vanlige feil når du arbeider med pekere
Anta at du vil at peker pc skal pek på adressen til c. Så,
Her er et eksempel på pekersyntaks nybegynnere ofte forvirrende.
Hvorfor fikk vi ikke en feil når bruker int *p = &c;
?
Det er fordi
tilsvarer
I begge tilfeller lager vi en peker p
(ikke *p
) og tilordner &c
til den.
For å unngå denne forvirringen, kan vi bruke uttalelsen slik:
Nå vet du hva pekere er, du vil lære hvordan pekere er relatert til matriser i neste opplæring.