Hur implementerar jag pekare i C ++?



Denna artikel kommer att presentera dig för begreppet pekare i C ++ och sedan följa upp det med en praktisk praktisk demonstration.

Pekare i C ++ är en variabel som innehåller adressen till en annan variabel i c ++. Adressen lagras i pekvariabeln och hjälper till att implementera samtal för referens.

Följande tips kommer att behandlas i den här artikeln,





Börjar med den här artikeln om Pointers on C ++

Syntax:



datatyp * peknamn EXEMPEL: int * ptr
  • En pekvariabel har ett * -tecken framför sitt namn.
  • En pekare kallas också en lokalisator eller indikator.

Användning av pekaren:

  • Dynamisk minnesallokering
  • I olika program med arrays, struktur och funktioner

Här är ett exempel på kod:

#include använder namnrymd std int main () {int num = 17 int * ptr ptr = & num cout<< 'Value at ptr = ' << ptr << 'n' cout << 'Value at var = ' << num << 'n' cout << 'Value at *ptr = ' << *ptr << 'n' } 

Produktion:
Output- Pekare i C ++ - Edureka



Förklaring:

I programmet ovan visar vi en pekares grundläggande funktion. Vi har en heltalvariabel num med värde 17. Vi har pekervariabel ptr av typen int. Vi tilldelar numret till pekaren ptr.

Vi skriver först ut värdet på ptr, det är adressen. Därefter skriver vi ut num-värdet och i slutet skriver vi ut värdet på den plats som pekaren ptr har.

Fortsätter med den här artikeln om Pointers on C ++

Pekare och matriser:

Vi kan betrakta det första elementet i en matris som en pekare, eftersom arraynamnet innehåller adressen till det första elementet. Vi kan använda en pekare på följande sätt.

Här är en exempelkod:

#include using namespace std int main () {int arr [3] = {5, 10, 20} int * ptr ptr = arr cout<< 'Elements of the array are: ' cout << ptr[0] << ' ' << ptr[1] << ' ' << ptr[2] } 
 Produktion: 

Förklaring:

I ovanstående program visar vi grundläggande arbete för en pekare med en matris. Vi har en array arr med värden 5,10,20. Vi har pekervariabel ptr av typen int. Vi tilldelar arr-adressen till pekaren ptr.

Vi skriver först ut värdet på ptr [0], det är det första elementet i matrisen. Därefter skriver vi ut det andra respektive det tredje elementet. Eftersom arrayelement lagras i följd så kan pekaren komma åt den andra platsen för arrayen genom inkrementering.

Fortsätter med den här artikeln om Pointers on C ++

Nollpekare:

Det finns den typ av pekare som inte har något värde och som har ett nullvärde

Exempel :

int * ptr = NULL

De är mycket användbara i datastrukturer som en länkad lista.

Fortsätter med den här artikeln om Pointers on C ++

Ogiltiga pekare:

Det här är den typ av pekare som inte har en returtyp.

Fortsätter med den här artikeln om Pointers on C ++

Pointer Arithmetic Operation:

Olika operationer kan utföras på pekare. Här är några viktiga typer.

  • inkrementerad (++)
  • minskat (-)
  • skillnad mellan två pekare (p1-p2)
  • tillägg av ett heltal till en pekare (+ eller + =)
  • subtrahering av ett heltal från en pekare (- eller - =)

Här är en kod för att demonstrera några av dessa operationer:

#include using namespace std int main () {int arr [3] = {10, 100, 200} int * ptr ptr = arr for (int i = 0 i<3 i++) { cout << 'Value at different locations of array using *ptr = ' << *ptr << 'n' ptr++ } } 

Produktion:

Förklaring:

åsidosättande vs överbelastning c ++

Vi visar enkel aritmetisk operation av inkrementering av pekervariabeln visas i ovanstående program.

Fortsätter med den här artikeln om Pointers on C ++

Pekare till pekare:

I denna typ av system finns det två pekare. Den första pekaren pekar på den andra pekaren och den andra pekaren pekar på variabeln som håller värdet.

Här är en exempelkod:

#include using namespace std int main () {int num int * ptr int ** pptr num = 3000 ptr = & num pptr = & ptr cout<< 'Value of num :' << num<< endl cout << 'Value available at *ptr :' << *ptr << endl cout << 'Value available at **pptr :' << **pptr << endl return 0 } 

Produktion:

Fortsätter med den här artikeln om Pointers on C ++

Pekare till funktioner:

Detta är ett sätt att överföra pekare till funktioner. Funktionsparametern måste deklareras som en pekartyp. Det visas i koden nedan,

#include using namespace std float getAverage (int * arr, int size) int main () {int balance [5] = {1432, 232, 3232, 17, 502} float avg avg = getAverage (balance, 5) cout<< 'Average value is: ' << avg << endl return 0 } float getAverage(int *arr, int size) { int i, sum = 0 double avg for (i = 0 i < size ++i) { sum += arr[i] } avg = double(sum) / size return avg } 


Produktion

Så här skickar vi en pekare till en funktion.

Således har vi kommit till slutet av den här artikeln om 'Pekare i C ++'. Om du vill veta mer, kolla in av Edureka, ett pålitligt inlärningsföretag online. är utformad för att träna dig för både kärn- och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.