Hva er poengene i C ++?

Peker på det kraftigste verktøyet i c ++, det hjelper programmereren til å få tilgang til og manipulere minnet direkte. Når for eksempel en variabel opprettes, er jobben til kompilatoren å gjøre minnetildeling for å lagre verdien på variabelen. Og denne verdien blir hentet ved å bruke variabelnavnet som er tilordnet dataene. C ++ har kompatibiliteten til å lagre og hente dataene fra minnet med henvisning til adressen til minneplassen hvor dataene er lagret. C ++ utfører til og med pekere på en peker.

syntax

Det generelle formatet for pekerdeklarasjonen er:

Data_type * pointer -variable-name

Merk at pekervariabelen bør gå foran en stjerne (*)

Eksempel: int * xptr;

Variabelen xptr er en peker til et heltall. Generelt kan pekervariabler peke på heltallvariabler, tegnvariabler, matriser, filer, funksjoner.

Hvorfor trenger vi Pekere i C ++?

Dynamisk allokering av minnet gjøres enkelt i C ++ ved hjelp av pekere, og den mest fremtredende betydningen av pekere er at de er mye effektive når det gjelder å håndtere de forskjellige datatypene. De øker utføringshastigheten når funksjonen returnerer en verdi og gir også hånd i å få tilgang til en variabel definert utenfor funksjonen. Den vanligste bruken inkluderer datastyring og tilgang til klassemedlemmerfunksjoner.

Hvordan lage poeng i C ++?

Her er følgende trinn for å opprette pekere i C ++

Trinn 1 - Initialisering av pekere

Det anbefales å initialisere pekervariabler, så snart de er deklarert. Siden pekervariabler lagrer adresser, kan de adressere hvilken som helst del av minnet.

int *a; // pointer to an integer
double *da; // pointer to a double
float *fa; // pointer to afloat
char *ch // character pointer

Tenk på følgende eksempel:

int p, * pi; // Denne uttalelsen instruerer kompilatoren om å reservere et mellomrom for variabelen p i minnet til å inneholde en heltalverdi.

pi = & et; // Tilordner adressen til heltalvariabelen p til pekervariabelen. For eksempel, hvis adressen til p er 4581, vil verdien i * pi være lik 4581.

Trinn 2 - Pekeren er ugyldig

Her får pekervariabelen lov til å peke på hvilken som helst datatype, og denne typen brukes til å sende pekere til å fungere som fungerer uavhengig av datatypen det blir pekt på.

Syntaks: void * pekervariabel;

Eksempel:

#include
#include
using namespace std;
int main ()
(
int x, *iv;
float f, *fv;
void *vp;
x=3;
f=45.2;
iv=&x;
fv=&f;
vp=&x;
cout<< "the value pointed by iv is "<<*iv<< endl;
cout<< "The address of x is "< cout<< "the value pointed by fv is "<<*fv<< endl;
cout<< "The address of f is "< cout<< "The address of x is "< vp= &f;
cout<< "the address of f is "< )
#include
#include
using namespace std;
int main ()
(
int x, *iv;
float f, *fv;
void *vp;
x=3;
f=45.2;
iv=&x;
fv=&f;
vp=&x;
cout<< "the value pointed by iv is "<<*iv<< endl;
cout<< "The address of x is "< cout<< "the value pointed by fv is "<<*fv<< endl;
cout<< "The address of f is "< cout<< "The address of x is "< vp= &f;
cout<< "the address of f is "< )
#include
#include
using namespace std;
int main ()
(
int x, *iv;
float f, *fv;
void *vp;
x=3;
f=45.2;
iv=&x;
fv=&f;
vp=&x;
cout<< "the value pointed by iv is "<<*iv<< endl;
cout<< "The address of x is "< cout<< "the value pointed by fv is "<<*fv<< endl;
cout<< "The address of f is "< cout<< "The address of x is "< vp= &f;
cout<< "the address of f is "< )
#include
#include
using namespace std;
int main ()
(
int x, *iv;
float f, *fv;
void *vp;
x=3;
f=45.2;
iv=&x;
fv=&f;
vp=&x;
cout<< "the value pointed by iv is "<<*iv<< endl;
cout<< "The address of x is "< cout<< "the value pointed by fv is "<<*fv<< endl;
cout<< "The address of f is "< cout<< "The address of x is "< vp= &f;
cout<< "the address of f is "< )
#include
#include
using namespace std;
int main ()
(
int x, *iv;
float f, *fv;
void *vp;
x=3;
f=45.2;
iv=&x;
fv=&f;
vp=&x;
cout<< "the value pointed by iv is "<<*iv<< endl;
cout<< "The address of x is "< cout<< "the value pointed by fv is "<<*fv<< endl;
cout<< "The address of f is "< cout<< "The address of x is "< vp= &f;
cout<< "the address of f is "< )

Produksjon:

$ g ++ - for hoved *. cpp
$ hoved
verdien pekt på iv er 3
Adressen til x er 0x7ffefbbee6d4
verdien pekt på fv er 45, 2
Adressen til f er 0x7ffefbbee6d0
Adressen til x er 0x7ffefbbee6d4

adressen til f er 0x7ffefbbee6d0

Trinn # 3 - Pekere aritmetiske operasjoner i C ++

Peker aritmetikk utføres med matriser. Følgende operasjoner kan utføres på pekere. De er:

  • Økning (++)
  • Dekrement (-)
  • Pekertillegg
  • Pointer subtraksjon

Når vi legger til 1 til pekeren, spesifiserer det å legge til størrelsen på pekeren som peker på.

Programmet nedenfor spesifiserer peker aritmetikk det fungerer til det kommer på slutten av matrisen.

#include
#include
using namespace std;
void pointerarithmetic(int a(), int size)
(
int *e, *t; //Declaring two int pointers variables
e = a; //assigning e to point the arrays initial element a(0) t = a + size; // assigning variable t to the array last element
while(e != t)
(
cout << *e << endl; //displays the e
e++; // incrementing ( next element)
)
)
int main()
(
int a() = (2, 4, 6, 8, 10, 12, 14, 16, 18, 20);
pointerarithmetic (a, 20);
return 0;
)

Produksjon:

$ g ++ - for hoved *. cpp
$ hoved
2

4

6

8

10

12

14

16

18

20

0

0

4196480

0

-1, 743, 362, 854

32686

1

0

153860328

32766

Trinn 4 - Pointer to Pointer

flyte ** fpp;

Den angir to nivåer av pekere ( Flere indireksjoner ). Det er en variabel som peker til en annen peker videre peker til et objekt som er spesifisert på et minneplass. For eksempel kan fpp være en flyterpeker som peker for øyeblikket til minneadressen 2001, størrelsen på flottøren er 8 byte, deretter ved

FPP ++;

indikerer fpp som peker på adresse 2009. Tilsvarende når variabelen er dekrementert med 1, vil den peke til den forrige plasseringen av basistypen på adresse 1993.

Trinn 5 - Pekeren til funksjoner

Når pekere sendes til en funksjon som argumenter, blir dataelementene tilknyttet disse pekernes variabler endret i funksjonen og deretter returnert til det anropende programmet, vil endringene bli beholdt i det anropende programmet. Når en peker sendes som en parameter, endres de respektive dataelementene globalt fra den kalte funksjonen. Pekeren sendes som referanse. Funksjoner kan utføres på peker på forskjellige måter:

  1. funksjonen påberopes ved å gi referansen
  2. Funksjonen påberopes ved å sende en peker

Funksjonen påberopes ved å gi referansen

I dette sendes adressen som et argument i stedet for verdier.

Eksempel:

#include
using namespace std;
void changefn(int*, int*);
int main()
(
int n = 5, m = 6;
cout << "Before change" << endl;
cout << "n = " << n << endl;
cout << "m = " << m << endl;
changefn(&n, &m);
cout << "\nAfter change" << endl;
cout << "n = " << n << endl;
cout << "m = " << m << endl;
return 0;
)
void changefn(int* x1, int* x2) (
int s1;
s1 = *x1;
*x1 = *x2;
*x2 = s1;
)

Produksjon:

$ g ++ - for hoved *. cpp
$ hoved
Før endring

n = 5

m = 6

Etter endring

n = 6

m = 5

Konklusjon

Denne artikkelen hadde til hensikt å oppdatere kunnskapen om hvordan du kan bruke pekere i C ++ og deres grunnleggende emner på en enkel måte med et eksempel. Pekeren er også kjent som lokalisering reduserer kodeuttalelsen for høyere ytelse. Pekere spiller en viktig rolle i implementering av datastrukturer som koblet liste og programmering på systemnivå. De er det mest foretrukne språket i innebygde systemer, da de er en god måte å få tilgang til minne direkte ved å bruke pekere.

Anbefalte artikler

Dette er en guide til Pointers i C ++. Her diskuterer vi hvordan du oppretter poeng i C ++ med de gitte eksempler og utdata, og hvorfor trenger vi det. Du kan også se på følgende dataanalysekurs for å lære mer

  1. Pekere i Python
  2. Datatyper i C
  3. Arrays i C ++
  4. Stjernemønstre i c ++
  5. Hvordan fungerer Pointers i C #?