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
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ą.
#includeNaudojant 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:
#includenaudojant 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ą:
#includenaudojant 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:
#includenaudojant 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į.