Unary Operator C++:ssa

Unary Operator C Ssa



C++:ssa unaarinen operaattori on operaattori, joka toimii vain yhdellä operandilla. Unaarioperaattoreilla on ratkaiseva rooli C++:ssa, koska ne mahdollistavat yksikkömuuttujaan tai lausekkeeseen liittyvän arvon manipuloinnin. Näitä monipuolisia operaattoreita voidaan käyttää erilaisissa yhteyksissä, kuten muuttujan lisäämisessä tai pienentämisessä, numeerisen arvon etumerkin vaihtamisessa tai loogisen negation suorittamisessa. Tässä artikkelissa tarkastellaan C++:n unaarioperaattoreita kattamalla niiden tyypit ja sovellukset sekä tarjoamalla useita esimerkkejä paremman ymmärtämisen takaamiseksi.

C++ tukee useita unaarioperaattoreita, joista jokainen palvelee ainutlaatuista tarkoitusta muuttujien manipuloinnissa. Aloitetaan lisäys- ja vähennysoperaattoreista, joita käytetään yleisesti silmukoissa ja erilaisissa algoritmeissa.

Esimerkki 1: Lisäys (++) ja vähennys (–) -operaattorit

Inkrementti (++) ja dekrementti (–) ovat C++:n perustyökaluja muuttujan arvon muokkaamiseen joko suurentamalla tai vähentämällä sitä 1:llä. Lisäysoperaattori (++) lisää 1 muuttujan arvoon, kun taas vähennysoperaattori (–) vähentää 1. Näitä operaattoreita voidaan soveltaa kokonaisluku-, liukuluku- ja osoitinmuuttujiin, mikä tarjoaa joustavuutta niiden käyttöön.







Tutkitaan näitä operaattoreita käytännön esimerkin avulla:



#include
käyttämällä nimiavaruus std ;

int pää ( )
{

int laskuri = 0 ;

// Kasvatusoperaattori
cout << 'Alkuarvo:' << laskuri << endl ;

laskuri ++ ;
cout << 'Arvo lisäyksen jälkeen:' << laskuri << endl ;

// Vähennä operaattoria
laskuri -- ;
cout << 'Arvo vähennyksen jälkeen:' << laskuri << endl ;

palata 0 ;
}

Tämä yksinkertainen C++-ohjelma sisältää tarvittavan syöttö-/tulostusvirtakirjaston '#include '. 'main()'-funktiossa instantoimme kokonaislukumuuttujan nimeltä 'counter' ja annamme sille alkuarvon 0. 'cout'-käskyn avulla tulostamme 'laskurin' alkuarvon konsoliin, jolloin saadaan esittelymme lähtökohtana. Eteenpäin siirryttäessä inkrementtioperaattoria (laskuri++) käytetään nostamaan 'laskuri'-muuttujan arvoa yhdellä.



Tämän toimenpiteen jälkeen päivitetty 'laskuri'-arvo näytetään käyttämällä toista 'cout'-lausetta. Myöhemmin käytämme dekrementointioperaattoria (laskuri-) pienentämään “laskuri” arvoa yhdellä. Tulos näytetään sen jälkeen konsolissa. Lopulta ohjelma päättyy 'paluu 0;' lauseke, joka osoittaa onnistuneen suorituksen.





Tulostuskuvassa näkyy alkuarvo, lisäyksen jälkeen oleva arvo ja vähennetty arvo.



Esimerkki 2: Positiiviset (+) ja negatiiviset (-) operaattorit

Vaikka positiivista unaarista operaattoria käytetään harvoin, negatiivinen operaattori on olennainen muuttujan etumerkin muuttamisessa.

#include
Käyttämällä nimiavaruus std ;

int pää ( ) {
int positiivinenValue = 10 ;
int negatiivinenValue = - positiivinenValue ;

cout << 'Positiivinen arvo:' << positiivinenValue << endl ;
cout << 'Negatiivinen arvo: ' << negatiivinenValue << endl ;

palata 0 ;
}

Alustamme kaksi kokonaislukumuuttujaa tälle esimerkkikoodille, jotka ovat 'positiveValue' ja 'negativeValue'. 'PositiveValue' on annettu arvolla 10. Tämän jälkeen määritämme 'negativeValue' ja määritämme sen negatiivisella 'positiveValue' -operaattorilla käyttämällä unaari miinus -operaattoria. Tämä operaattori muuttaa tehokkaasti alkuperäisen arvon etumerkin. Käytämme sitten 'cout'-lausetta näyttämään sekä positiivisen että negatiivisen tulosteen konsolissa. Lopuksi ohjelma palauttaa 0:n, joka osoittaa päätoiminnon onnistuneen suorittamisen.

Kun tämä ohjelma suoritetaan, se tulostaa positiiviset ja negatiiviset arvot.

Esimerkki 3: Looginen EI (!) Operaattori

Yksikköoperaattori C++:ssa, merkitty '!' symboli, tunnetaan loogisena NOT-operaattorina. Se on suunniteltu kääntämään tietyn lausekkeen totuusarvo. Se toimii yhdellä operandilla, joka on tyypillisesti looginen lauseke tai ehto. Looginen EI-operaatio antaa 'tosi' tuloksen, kun operandi on 'false' ja antaa 'false' tuloksen, kun operandi on 'tosi'.

Tässä on yksinkertainen esimerkki, joka havainnollistaa loogisen NOT-operaattorin käyttöä:

#include
käyttämällä nimiavaruus std ;

int pää ( ) {
bool on totta = totta ;
bool on False = väärä ;

bool tulosEi totta = ! on totta ;
bool tulosEiFalse = ! on False ;

cout << 'Alkuperäinen arvo:' << on totta << ', sen jälkeen, kun EI: ' << tulosEi totta << endl ;
cout << 'Alkuperäinen arvo:' << on False << ', sen jälkeen, kun EI: ' << tulosEiFalse << endl ;

palata 0 ;
}

Tässä esimerkissä ilmoitamme kaksi Boolen muuttujaa, 'isTrue' ja 'isFalse'. Käytämme sitten loogista NOT-operaattoria jokaiseen muuttujaan ja tallennamme tulokset 'resultNotTrue'- ja 'resultNotFalse'-kentille. Tämän jälkeen ohjelma tulostaa molempien muuttujien alkuperäiset arvot ja loogisen EI-operaation tulokset.

Kun suoritamme tämän ohjelman, huomaamme, että looginen NOT-operaattori kääntää totuusarvon 'isTrue' (alun perin asetettu arvoon tosi), jolloin se on epätosi. Samoin se kääntää totuusarvon 'isFalse' (alun perin false), jolloin saadaan tosi.

Tulos havainnollistaa selvästi loogisen NOT-operaattorin saavuttamien totuusarvojen inversion.

Esimerkki 4: Bitwise EI (~) Operaattori

Bittikohtainen NOT-operaattori (~) C++:ssa on unaarinen operaattori, joka suorittaa operandinsa jokaisen bitin bittisuuntaisen negation. Se toimii perustietotyyppien kanssa, erityisesti integraalisten tietotyyppien, kuten kokonaislukujen, kanssa. Tulos saavutetaan kääntämällä jokainen yksittäinen bitti operandissa, muuntamalla 0:t 1:iksi ja 1:t 0:iksi.

Havainnollistaaksesi sen käyttöä, harkitse seuraavaa koodinpätkää:

#include
käyttämällä nimiavaruus std ;

int pää ( ) {
int alkuperäinen Arvo = 5 ;

int tulos BittikohtaisestiEi = ~originalValue ;

cout << 'Alkuperäinen arvo:' << alkuperäinen Arvo << ', Bitwisen jälkeen EI: ' << tulos BittikohtaisestiEi << endl ;

palata 0 ;
}

Tässä esimerkissä määritetään 'originalValue'-kokonaislukumuuttuja, jonka arvo on '5'. Seuraavaksi käytämme bittikohtaista NOT-operaattoria (~) tälle muuttujalle. Tämän muuttujan tulos tallennetaan kohtaan 'resultBitwiseNot'. Ohjelma tulostaa sitten alkuperäisen arvon ja tuloksen bittikohtaisen NOT-operaation jälkeen käyttämällä 'cout'-käskyä.

Kun suoritamme tämän ohjelman, näemme, että bittikohtainen NOT-operaattori kääntää 'originalValue' -arvon binääriesityksen jokaisen bitin, mikä johtaa uuteen arvoon.

Esimerkki 5: Osoite- ja välitysoperaattorit

'&'-symbolilla merkitty operaattorin osoite palvelee muuttujan muistipaikan hakemista. Se palauttaa osoittimen muuttujaan, joka mahdollistaa epäsuoran pääsyn sen arvoon. Epäsuunnan tai viittauksen poisto-operaattori (*) saa arvon, joka on tallennettu osoittimen määrittelemään muistipaikkaan. Se tarjoaa tavan käsitellä todellisia tietoja osoittimen avulla epäsuorasti.

Ymmärretään konseptia esimerkin avulla:

#include
käyttämällä nimiavaruus std ;

int pää ( ) {
int arvo = 99 ;

cout << 'Alkuperäinen arvo:' << arvo << endl ;

int * ptr = & arvo ;
cout << 'Muistiosoite:' << ptr << endl ;

int retrivedValue = * ptr ;
cout << 'Haettu arvo: ' << retrivedValue << endl ;

palata 0 ;
}

Tämä koodi on esimerkki osoite- ja välioperaattoreiden käytöstä. Ensin kokonaislukumuuttuja nimeltä 'value' alustetaan arvolla 99. Alkuperäinen 'value' -arvo tulostetaan sitten konsoliin. Tämän jälkeen ilmoitetaan 'ptr'-osoitinmuuttuja, ja operaattorin osoitetta (&) käytetään määrittämään 'arvon' muistiosoite 'ptr:lle'. Ohjelma tulostaa sitten tämän muistiosoitteen, joka näyttää 'osoite'-operaattorin perustoiminnot.

Tämän jälkeen ilmoitetaan uusi kokonaislukumuuttuja, joka on 'retrievedValue', ja epäsuoraoperaattoria (*) käytetään noutamaan arvo, joka on tallennettu 'ptr' osoittamaan muistiosoitteeseen. Haettu arvo tulostetaan sitten konsoliin.

Johtopäätös

Tämä artikkeli tarjosi kattavan selvityksen C++:n unaarisista operaattoreista. Aloitimme luokittelemalla unaarioperaattorit eri tyyppeihin, mukaan lukien aritmeettiset, loogiset, bittioperaattorit sekä osoitteeseen ja epäsuoraan liittyvät operaattorit. Esimerkkeinä otettiin tosielämän tilanteita näiden operaattoreiden hyödyllisen soveltamisen osoittamiseksi. Näillä operaattoreilla on keskeinen rooli C++-ohjelmoinnissa, jonka avulla kehittäjät voivat työskennellä osoittimien kanssa tehokkaasti ja hallita muistia.