Kako implementirati pokazivače u C ++?



Ovaj će vas članak upoznati s konceptom pokazivača na C ++, a zatim će ga pratiti pratećim praktičnim demonstracijama.

Pokazivači na C ++ je varijabla koja sadrži adresu druge varijable u jeziku c ++. Adresa se pohranjuje u varijablu pokazivača i pomaže u provedbi poziva po referenci.

U ovom će članku biti obrađeni sljedeći putokazi,





Počevši od ovog članka o Pokazateljima na C ++

Sintaksa:



tip podataka * pointername PRIMJER: int * ptr
  • Varijabla pokazivača ispred svog imena ima znak *.
  • Pokazivač se naziva i lokator ili indikator.

Uporaba pokazivača:

  • Dinamička dodjela memorije
  • U raznim programima nizova, strukture i funkcija

Evo primjera koda:

#include using namespace 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' } 

Izlaz:
Izlaz - Pokazivači u C ++ - Edureka



Obrazloženje:

U gornjem programu prikazujemo osnovni rad pokazivača. Imamo cjelobrojnu varijablu num sa vrijednošću 17. Imamo varijablu pokazivača ptr tipa int. Pokazivaču ptr dodjeljujemo adresu num.

Prvo ispisujemo vrijednost ptr, to je adresa. Dalje, ispisujemo num vrijednost i na kraju ispisujemo vrijednost na mjestu koje drži pokazivač ptr.

Nastavljamo s ovim člankom o Pokazateljima na C ++

Pokazivači i nizovi:

Prvi element niza možemo smatrati pokazivačem, jer naziv polja sadrži adresu prvog elementa. Pokazivač možemo koristiti na sljedeći način.

Evo primjera koda:

#include using space names 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] } 
 Izlaz: 

Obrazloženje:

U gornjem programu prikazujemo osnovni rad pokazivača s nizom. Imamo niz arr s vrijednostima 5,10,20. Imamo varijablu pokazivača ptr tipa int. Adresa arr dodjeljujemo pokazivaču ptr.

Prvo ispisujemo vrijednost ptr [0], to je prvi element niza. Dalje, ispisujemo drugi odnosno treći element. Kako se elementi niza spremaju uzastopno, tako pokazivač može pristupiti drugom mjestu niza povećavanjem.

Nastavljamo s ovim člankom o Pokazateljima na C ++

Nulti pokazivači:

Postoje vrste pokazivača koji nemaju vrijednost i sadrže null vrijednost

Primjer :

int * ptr = NULL

Vrlo su korisni u strukturama podataka poput povezanog popisa.

Nastavljamo s ovim člankom o Pokazateljima na C ++

Prazni pokazivači:

To su tipovi pokazivača koji nemaju tip povratka.

Nastavljamo s ovim člankom o Pokazateljima na C ++

Aritmetička operacija pokazivača:

Na pokazivačima se mogu izvoditi različite operacije. Evo nekoliko važnih vrsta.

  • uvećano (++)
  • dekrementirano (-)
  • razlika između dva pokazivača (p1-p2)
  • dodavanje cijelog broja pokazivaču (+ ili + =)
  • oduzimanje cijelog broja od pokazivača (- ili - =)

Evo koda za demonstraciju nekih od ovih operacija:

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

Izlaz:

Obrazloženje:

Pokazujemo da je jednostavna aritmetička operacija prirasta pokazivačke varijable prikazana u gornjem programu.

Nastavljamo s ovim člankom o Pokazateljima na C ++

što je apstrakcija u c ++-u

Pokazivač na pokazivač:

U ovoj vrsti sustava postoje dva pokazivača. Prvi pokazivač pokazuje na drugi pokazivač, a drugi pokazivač na varijablu koja drži vrijednost.

Evo primjera koda:

#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 } 

Izlaz:

Nastavljamo s ovim člankom o Pokazateljima na C ++

Pokazivač na funkcije:

Ovo je način prosljeđivanja pokazivača na funkcije. Parametar funkcije mora se deklarirati kao tip pokazivača. To je prikazano u donjem kodu,

#include using space names 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 } 


Izlaz

Tako prosljeđujemo pokazivač na funkciju.

Tako smo došli do kraja ovog članka o 'Pokazateljima na C ++'. Ako želite saznati više, pogledajte Edureka, pouzdane tvrtke za internetsko učenje. je osmišljen kako bi vas osposobio za osnovne i napredne Java koncepte, zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga i javit ćemo vam se što je prije moguće.