C ++ peker aritmetikk

C ++ peker aritmetikk

Vi vet at pekerne er minneadresser til variabler og er numeriske generelt. Derfor kan vi også gjøre noen aritmetiske beregninger på pekerne. Disse beregningene kan gjøres det samme som vi gjør på numeriske verdier i matematikk eller programmering. Derfor vil vi diskutere noen aritmetiske operasjoner på pekerne i veiledningen vår ved hjelp av C++. Vi har brukt Ubuntu 20.04 System sørg for å ha G ++ -kompilatoren konfigurert i den. La oss begynne med implementeringen av pekeren aritmetikk i Ubuntu 20.04 Systemterminalskall ved hjelp av en snarvei Ctrl+ALT+T brukt på skrivebordet.

Eksempel 1:

Begynn det første eksemplet på C ++ -kode for å bruke aritmetiske operatører “+” på pekere etter filoppretting. Du kan opprette en fil på mange måter, men den enkleste er bruken av "berøringsinstruksjon. Dermed har vi prøvd berøringsnøkkelordet sammen med tittelen på en fil som skal dannes på konsollen og trykket på enter. Filen er opprettet i Ubuntu 20.04 Hjemmemappe.

Nå, for å åpne denne nyopprettede filen, kan du bruke alle de innebygde redaktørene som følger med Ubuntu 20.04 i.e. Vim, Text Editor eller GNU Nano Editor. Vi foreslår at du bruker GNU Nano -redaktøren, da vi har brukt den i skallet som demonstrert fra bildet nedenfor.

Denne filen “Pointer.CC ”er hittil av redaktøren hittil. Vi har tatt med Input-Output Stream Header-filen på første linje, og standard navneområdet har blitt brukt på den andre linjen. Vi har initialisert en heltallvariabel “V” med en verdi på 8. Ved neste linje på rad har vi initialisert en heltallstypepeker “P”. Denne pekeren er adressen til en variabel “V”, da den er bundet av variabelen “V” ved å bruke “&” -tegnet. Dette betyr at vi kan endre adressen til en mutable når som helst. Standard cout -uttalelser har blitt brukt etter hverandre. Den første viser originaladressen til variabel “V” lagret som pekeren “P”.

På neste linje har cout -setningen økt adressen til pekeren med 1 og viser den. De to neste linjene har brukt pekeren og øker verdien med 2 og 3. De økte verdiene er vist med COUT -setningen. Koden ender her. La oss lagre koden først før utførelsen. Bruk Ctrl+S for dette formålet. Du må slutte med GNU Nano -redaktøren for å komme tilbake mot terminalen. Benytt deg av snarveisnøkkelen “Ctrl+X” for dette formålet. Dette var den enkleste C ++ -koden for å øke pekeren ved å bruke+ -operatøren.

Etter å ha kommet tilbake til skallet, må vi gjøre koden vår feilfri. C ++ -kompilatoren brukes til denne utholdenheten. Compiler -nøkkelordet “G ++” har blitt brukt sammen med navnet på en fil som skal kompileres i.e. “Peker.CC ”. Samlingen er vellykket, da du kan se at den returnerer ingenting. La oss utføre vår feilfrie kode ved hjelp av ”./en.ut ”standardkommando. Vi har fått de 4 forskjellige adressene for variabel “V”.

Den første er den opprinnelige adressen “P” for variabel “V”. Den andre økes med 1, den tredje økes med verdi 2 og den siste økes med 3. Hver gang utfører vi økningen, de to siste karakterene i en adresse har en tendens til å endre seg som vist under.

Eksempel 2:

La oss lage et annet eksempel for å bruke Dekrementoperatøren på en peker. Så vi har konsumert den samme gamle filen “Pointer.CC ”. Navneområdet og inngangs-output-overskriften brukes det samme som vi gjorde før. Et annet konstant heltallvariabel “S” initialiseres med en konstant verdi på 5. Innenfor Main () -metoden har vi brukt en heltallstype som heter “V” av størrelse “S” med 5 elementer i den. Heltallpekeren “P” er blitt erklært. Pekeren har vært bundet med heltallsarrayen “V” ved hjelp av “&” -tegnet.

Størrelsen vil bli startet fra S-1-adressen. "For" -sløyfen er initialisert som startes fra størrelse 5 og fungerer i avtagende rekkefølge ved å redusere med 1 hver gang. Hver gang "for" -løkken fungerer, viser den minneadressen til indeksnummeret som er iterert av løkken og verdien ved en bestemt indeks, i tillegg til å bruke standard cout -setningen. “P” demonstrerer indeksadressen, mens *P representerer verdien ved den aktuelle indeksen. I hver iterasjon har pekeren blitt dekrementert med 1. Sløyfen ender her og hovedfunksjonen også.

Sett sammen koden først med G ++ -kompilatoren til C ++ språket. Det kjører vellykket uten feil. Utførelsen utføres av “./en.ut ”-kommando. Vi har fått utdataene som vist nedenfor. Du kan se, vi har fått hver minneadresse for en bestemt indeks i.e. 5,4,3,2,1 i den synkende rekkefølgen av indekser. På den annen side har vi også fått verdiene på hver enkelt indeks hver gang sløyfen itererer i synkende rekkefølge til siste verdi.

Eksempel 3:

La oss ha en ny forekomst av pekere. Innenfor dette eksemplet vil vi sammenligne pekeradresser så vel som verdiene de inneholder. Dermed dokumentpekeren.CC er nå lansert i GNU Nano -redaktøren. Main () -funksjonen er initialisert etter standard navneområdet og "IO" -strømmen i kodefilen. Den inneholder to strengtypevariabler S1 og S2 med helt forskjellige strengverdier i.e. “Aqsa” og “Yasin”.

Etter dette har vi initialisert to strengtypepekervariabler P1 og P2 avgrenset av både variabler S1 og S2 ved bruk av “&” -tegnet etter “=” -tegnet. Dette betyr at pekeren P1 er adressen til variabel S1 og P2 er adressen til variabel S2.

Den første standard cout -klausulen brukes til å vise sammenligningsresultatet av begge pekere I.e. Adresser til begge strengvariablene. Hvis adressene er de samme, vil den vise 1 som sant ellers 0 som usant på skallet. Den andre standard cout -leddet brukes til å vise sammenligningsresultatet av verdier som er lagret i den spesifikke pekeradressen. Hvis verdiene er de samme, vil den returnere 1, ellers 0. Sammenligningsprogrammet slutter her.

Sett sammen C ++ -koden din først og utfør den. Vi har fått 0 som et resultat av begge sammenligninger i.e. falsk. Dette betyr at både pekeradresser og verdier på disse adressene ikke er de samme.

La oss endre koden litt. Åpne den samme filen, og oppdater strengverdiene. De samme strengvariablene S1 og S2 er initialisert med de samme verdiene i.e. Aqsa. Resten av koden brukes uendret som vi gjorde før. Lagre koden din for å få det oppdaterte resultatet.

Vi har fått 0 som sammenligningsresultatet av pekeradresser da begge variablene inneholder forskjellige minneadresser og 1 som et resultat av verdisammenligning I.e. Samme verdier av begge strengene.

Konklusjon:

Vi har diskutert de aritmetiske operasjonene som er utført på pekerne. Vi har brukt økningen og decrement aritmetiske operatører på pekere. Vi har også diskutert bonuseksemplene for å illustrere arbeidsoperatørens arbeid på to forskjellige pekere.