Unary Operator C++

Unary Operator C



C++ kalboje unarinis operatorius yra operatorius, veikiantis tik su vienu operandu. Unariniai operatoriai vaidina lemiamą vaidmenį C++, nes leidžia manipuliuoti reikšme, susijusia su vienaskaitos kintamuoju arba išraiška. Šie universalūs operatoriai gali būti naudojami įvairiuose kontekstuose, pavyzdžiui, didinant arba mažinant kintamąjį, keičiant skaitinės reikšmės ženklą arba atliekant loginį neigimą. Šiame straipsnyje nagrinėjami unariniai operatoriai C++, apimant jų tipus ir programas bei pateikiant kelis pavyzdžius, kad būtų geriau suprasti.

C++ palaiko kelis unarinius operatorius, kurių kiekvienas atlieka unikalų tikslą manipuliuojant kintamaisiais. Pradėkime nuo padidinimo ir mažinimo operatorių, kurie dažniausiai naudojami kilpose ir įvairiuose algoritmuose.

1 pavyzdys: Prieaugio (++) ir Dekrecijos (–) operatoriai

Didėjimo (++) ir mažėjimo (–) vienanariai operatoriai yra pagrindiniai C++ įrankiai, skirti keisti kintamojo vertę atitinkamai padidinant arba sumažinant 1. Didinimo operatorius (++) prideda 1 prie kintamojo vertės, o mažinimo operatorius (–) atima 1. Šie operatoriai gali būti taikomi sveikiesiems skaičiams, slankiojo kablelio ir rodyklės kintamiesiems, suteikiant lankstumo juos naudojant.







Panagrinėkime šiuos operatorius naudodamiesi praktiniu pavyzdžiu:



#include
naudojant vardų erdvė std ;

tarpt pagrindinis ( )
{

tarpt skaitiklis = 0 ;

// Didinimo operatorius
cout << 'Pradinė vertė: ' << skaitiklis << endl ;

skaitiklis ++ ;
cout << 'Vertė po padidėjimo:' << skaitiklis << endl ;

// Sumažinti operatorių
skaitiklis -- ;
cout << 'Vertė po sumažinimo:' << skaitiklis << endl ;

grąžinti 0 ;
}

Ši paprasta C++ programa apima reikiamą įvesties / išvesties srauto biblioteką su „#include “. Funkcijoje „main()“ sukuriame sveikojo skaičiaus kintamąjį, vadinamą „counter“, ir priskiriame jam pradinę reikšmę 0. Naudodami teiginį „cout“, konsolėje atspausdiname pradinę „skaitiklio“ reikšmę, pateikdami mūsų demonstracijos pagrindas. Judant į priekį, padidinimo operatorius (skaitiklis++) naudojamas „skaitiklio“ kintamojo reikšmei padidinti 1.



Po šios operacijos atnaujinta „skaitiklio“ reikšmė rodoma naudojant kitą „cout“ teiginį. Vėliau mes naudojame mažinimo operatorių (skaitiklį), kad sumažintume „skaitiklio“ reikšmę 1. Rezultatas vėliau rodomas konsolėje. Galiausiai programa baigiama „grįžta 0;“ pareiškimas, nurodantis sėkmingą vykdymą.





Išvesties paveikslėlyje rodoma pradinė vertė, reikšmė po padidėjimo ir sumažinta reikšmė.



2 pavyzdys: teigiami (+) ir neigiami (-) operatoriai

Nors teigiamas unarinis operatorius naudojamas retai, neigiamas operatorius yra esminis norint pakeisti kintamojo ženklą.

#include
Naudojant vardų erdvė std ;

tarpt pagrindinis ( ) {
tarpt teigiama vertė = 10 ;
tarpt neigiamaValue = - teigiama vertė ;

cout << 'Teigiama vertė: ' << teigiama vertė << endl ;
cout << 'Neigiama vertė: ' << neigiamaValue << endl ;

grąžinti 0 ;
}

Šiam pavyzdiniam kodui inicijuojame du sveikųjų skaičių kintamuosius, kurie yra „pozityvi vertė“ ir „neigiama vertė“. „PositiveValue“ priskiriama reikšmei 10. Po to mes deklaruojame „neigiamą vertę“ ir priskiriame ją su „pozityvios vertės“ neigimu, naudodami unarinį minuso operatorių. Šis operatorius efektyviai pakeičia pradinės vertės ženklą. Tada naudojame teiginį „cout“, kad konsolėje būtų rodoma tiek teigiama, tiek neigiama išvestis. Galiausiai programa grąžina 0, o tai rodo sėkmingą pagrindinės funkcijos atlikimą.

Kai vykdoma, ši programa išveda teigiamas ir neigiamas reikšmes.

3 pavyzdys: Loginis NE (!) operatorius

Unarinis operatorius C++, žymimas „! simbolis, yra žinomas kaip loginis NOT operatorius. Jis skirtas tam tikros išraiškos tiesos vertei apversti. Jis veikia su vienu operandu, kuris paprastai yra loginė išraiška arba sąlyga. Loginė NOT operacija duoda „teisingą“ rezultatą, kai operandas yra „klaidingas“, ir duoda „klaidingą“ rezultatą, kai operandas yra „teisingas“.

Štai paprastas pavyzdys, parodantis, kaip naudojamas loginis operatorius NOT:

#include
naudojant vardų erdvė std ;

tarpt pagrindinis ( ) {
bool tiesa = tiesa ;
bool yra klaidinga = klaidinga ;

bool rezultatasNetiesa = ! tiesa ;
bool rezultatasNeKlaidingas = ! yra klaidinga ;

cout << „Pradinė vertė:“ << tiesa << ', Po NE: ' << rezultatasNetiesa << endl ;
cout << „Pradinė vertė:“ << yra klaidinga << ', Po NE: ' << rezultatasNeKlaidingas << endl ;

grąžinti 0 ;
}

Šiame pavyzdyje deklaruojame du Būlio kintamuosius „isTrue“ ir „isFalse“. Tada kiekvienam kintamajam taikome loginį NOT operatorių, išsaugodami rezultatus atitinkamai „resultNotTrue“ ir „resultNotFalse“. Vėliau programa išspausdina abiejų kintamųjų pradines reikšmes ir loginės operacijos NOT rezultatus.

Vykdydami šią programą pastebėsime, kad loginis NOT operatorius apverčia „isTrue“ tiesos reikšmę (iš pradžių nustatyta į „true“), paversdama ją klaidinga. Panašiai jis apverčia tiesos reikšmę „isFalse“ (iš pradžių false), gaudamas teisingą.

Išvestis aiškiai iliustruoja tiesos verčių inversiją, kurią pasiekia loginis NOT operatorius.

4 pavyzdys: bitų NE (~) operatorius

Operatorius bitais NOT (~) C++ yra unarinis operatorius, atliekantis kiekvieno savo operando bito bitų neigimą. Jis veikia su pagrindiniais duomenų tipais, ypač integraliais, tokiais kaip sveikieji skaičiai. Rezultatas pasiekiamas apverčiant kiekvieną atskirą operando bitą, konvertuojant 0 į 1 ir 1 į 0.

Norėdami iliustruoti jo naudojimą, apsvarstykite šį kodo fragmentą:

#include
naudojant vardų erdvė std ;

tarpt pagrindinis ( ) {
tarpt originali vertė = 5 ;

tarpt rezultatasBitiškaiNe = ~originali vertė ;

cout << „Pradinė vertė:“ << originali vertė << ', po bitų NE: ' << rezultatasBitiškaiNe << endl ;

grąžinti 0 ;
}

Šiame pavyzdyje deklaruojame sveikojo skaičiaus kintamąjį „originalValue“, kurio reikšmė yra „5“. Toliau šiame kintamajame naudojame bitų NOT operatorių (~). Šio kintamojo rezultatas saugomas „resultBitwiseNot“. Tada programa išspausdina pradinę reikšmę ir rezultatą po bitų NOT operacijos, naudodama „cout“ teiginį.

Kai paleisime šią programą, pamatysime, kad bitų NOT operatorius apverčia kiekvieną dvejetainio „originalValue“ atvaizdo bitą, todėl gaunama nauja reikšmė.

5 pavyzdys: Adreso ir nukreipimo operatoriai

Operatoriaus adresas, pažymėtas „&“ simboliu, naudojamas kintamojo atminties vietai gauti. Jis grąžina žymeklį į kintamąjį, kuris leidžia netiesiogiai pasiekti jo vertę. Netiesioginis arba nuorodos pašalinimo operatorius (*) gauna reikšmę, kuri yra saugoma žymeklio nurodytoje atminties vietoje. Tai suteikia galimybę netiesiogiai dirbti su faktiniais duomenimis per žymeklį.

Supraskime sąvoką pavyzdžiu:

#include
naudojant vardų erdvė std ;

tarpt pagrindinis ( ) {
tarpt vertė = 99 ;

cout << „Pradinė vertė:“ << vertė << endl ;

tarpt * ptr = & vertė ;
cout << 'Atminties adresas:' << ptr << endl ;

tarpt nuskaitytaValue = * ptr ;
cout << „Nuskaityta vertė:“ << nuskaitytaValue << endl ;

grąžinti 0 ;
}

Šis kodas parodo adreso ir netiesioginių operatorių naudojimą. Pirma, sveikasis kintamasis, pavadintas 'value', inicijuojamas reikšme 99. Tada pradinė 'value' reikšmė išvedama į konsolę. Vėliau deklaruojamas „ptr“ rodyklės kintamasis, o operatoriaus adresas (&) naudojamas „vertės“ atminties adresui priskirti „ptr“. Tada programa išveda šį atminties adresą, parodydama pagrindinį „adreso“ operatoriaus veikimą.

Po to deklaruojamas naujas sveikasis kintamasis, kuris yra 'retrievedValue', o netiesioginis operatorius (*) naudojamas norint gauti reikšmę, saugomą atminties adresu, pažymėtu 'ptr'. Tada gauta vertė išvedama į konsolę.

Išvada

Šiame straipsnyje pateiktas išsamus C++ unarinių operatorių tyrimas. Pradėjome suskirstydami vienanarius operatorius į įvairius tipus, įskaitant aritmetinius, loginius, bitų ir susijusius su adresu bei netiesioginiais. Realaus pasaulio situacijų pavyzdžiai buvo parodyti, kad šie operatoriai būtų naudingi. Šie operatoriai atlieka pagrindinį vaidmenį programuojant C++, leidžiantį kūrėjams efektyviai dirbti su rodyklėmis ir valdyti atmintį.