Sådan implementeres markører i C ++?



Denne artikel vil introducere dig til begrebet pointer i C ++ og derefter følge det op med en understøttende praktisk demonstration.

Markører i C ++ er en variabel, der indeholder adressen på en anden variabel i c ++. Adressen er gemt i markørvariablen og hjælper med implementeringen af ​​kald-for-reference.

Følgende punkter vil blive dækket i denne artikel,





Starter med denne artikel om Pointers på C ++

Syntaks:



datatype * pointernavn EKSEMPEL: int * ptr
  • En markørvariabel har et * tegn foran sit navn.
  • En markør kaldes også en lokalisator eller indikator.

Anvendelse af pointer:

  • Dynamisk hukommelsesallokering
  • I forskellige programmer med arrays, struktur og funktioner

Her er et eksempel på kode:

#include ved hjælp af 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' } 

Produktion:
Output- markører i C ++ - Edureka



Forklaring:

I ovenstående program viser vi den grundlæggende funktion af en markør. Vi har en heltalsvariabel num med værdi 17. Vi har markørvariablen ptr af typen int. Vi tildeler adressen til num til markøren ptr.

Vi udskriver først værdien af ​​ptr, det er adressen. Dernæst udskriver vi numværdien, og i slutningen udskriver vi værdien på det sted, som markøren ptr holder.

Fortsætter med denne artikel om Pointers på C ++

Tip og arrays:

Vi kan betragte det første element i en matrix som en pointer, da arraynavnet indeholder adressen på det første element. Vi kan bruge en markør på følgende måde.

Her er et eksempel på en kode:

#include ved hjælp af 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: 

Forklaring:

I ovenstående program viser vi den grundlæggende funktion af en markør med en matrix. Vi har en array arr med værdier 5,10,20. Vi har markørvariabel ptr af typen int. Vi tildeler adressen til arr til markøren ptr.

Vi udskriver først værdien af ​​ptr [0], det er det første element i arrayet. Dernæst udskriver vi henholdsvis det andet og tredje element. Da matrixelementer lagres fortløbende, kan markøren få adgang til den anden placering af arrayet ved inkrementering.

Fortsætter med denne artikel om Pointers på C ++

Null Pointers:

Der er typen af ​​markører, der ikke har nogen værdi og har en nulværdi

Eksempel :

matrix af objekter i java eksempel program
int * ptr = NULL

De er meget nyttige i datastrukturer som en sammenkædet liste.

Fortsætter med denne artikel om Pointers på C ++

Ugyldige markører:

Dette er den type markører, der ikke har en returtype.

Fortsætter med denne artikel om Pointers på C ++

Pointer Arithmetic Operation:

Forskellige operationer kan udføres på markører. Her er nogle vigtige typer.

  • inkrementeret (++)
  • dekrementeret (-)
  • forskel mellem to markører (p1-p2)
  • tilføjelse af et heltal til en markør (+ eller + =)
  • subtraktion af et heltal fra en markør (- eller - =)

Her er en kode til demo af nogle af disse operationer:

# inkludere brug af navneområde 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:

Forklaring:

Vi demonstrerer enkel aritmetisk operation af inkrementering af markørvariabel er vist i ovenstående program.

Fortsætter med denne artikel om Pointers på C ++

Markør til markør:

I denne type system er der to markører. Den første markør peger på den anden markør og den anden markør peger på den variabel, der holder værdien.

Her er en eksempelkode:

# inkludere brug af navneområde 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 denne artikel om Pointers på C ++

overordnet vs overbelastning c ++

Markør til funktioner:

Dette er en måde at videresende markører til funktioner på. Funktionsparameteren skal erklæres som en pointertype. Det vises i nedenstående kode,

#include ved hjælp af 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ådan overfører vi en markør til en funktion.

Således er vi nået til slutningen af ​​denne artikel om 'Pointers in C ++'. Hvis du ønsker at lære mere, skal du tjekke af Edureka, et pålideligt online læringsfirma. er designet til at træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarsektionen på denne blog, og vi vender tilbage til dig hurtigst muligt.