Unary Operator C++ nyelven

Unary Operator C Nyelven



A C++ nyelvben az unáris operátor olyan operátor, amely csak egyetlen operanduson dolgozik. Az unáris operátorok döntő szerepet játszanak a C++-ban azáltal, hogy lehetővé teszik az egyes változókhoz vagy kifejezésekhez társított érték manipulálását. Ezek a sokoldalú operátorok különféle összefüggésekben használhatók, például egy változó növelésére vagy csökkentésére, egy numerikus érték előjelének megváltoztatására vagy logikai negáció végrehajtására. Ez a cikk a C++ unáris operátorait tárja fel, bemutatva azok típusait és alkalmazásait, valamint számos példát adva a jobb megértés érdekében.

A C++ számos unáris operátort támogat, amelyek mindegyike egyedi célt szolgál a változók kezelésében. Kezdjük a növekedési és csökkentési operátorokkal, amelyeket gyakran használnak ciklusokban és különféle algoritmusokban.

1. példa: Növekedés (++) és Decrement (–) operátorok

A növekmény (++) és a csökkentés (–) unáris operátorok alapvető eszközei a C++-ban egy változó értékének 1-gyel történő növelésével vagy csökkentésével történő módosítására. A növekmény operátor (++) hozzáad 1-et a változó értékéhez, míg a csökkentő operátor (-) kivon 1-et. Ezeket az operátorokat egész számokra, lebegőpontos és mutatóváltozókra lehet alkalmazni, rugalmasságot biztosítva a használatukban.







Vizsgáljuk meg ezeket az operátorokat egy gyakorlati példán keresztül:



#include
segítségével névtér std ;

int fő- ( )
{

int számláló = 0 ;

// Növelési operátor
cout << 'Kezdő érték: ' << számláló << endl ;

számláló ++ ;
cout << 'Érték növelés után:' << számláló << endl ;

// Operátor csökkentése
számláló -- ;
cout << 'Érték csökkentése után:' << számláló << endl ;

Visszatérés 0 ;
}

Ez az egyszerű C++ program tartalmazza a szükséges bemeneti/kimeneti adatfolyam könyvtárat az „#include ” jelzéssel. A „main()” függvényen belül példányosítunk egy „counter” nevű egész változót, és 0 kezdőértéket rendelünk hozzá. A „cout” utasítással a „counter” kezdőértékét nyomtatjuk ki a konzolra, biztosítva bemutatónk alapja. Előre haladva a növekmény operátor (számláló++) a „számláló” változó értékét 1-gyel emeli.



A művelet után a „számláló” frissített értéke egy másik „cout” utasítással jelenik meg. Ezt követően a csökkentési operátort (számláló-) használjuk, hogy a „számláló” értékét 1-gyel csökkentsük. Az eredmény ezután megjelenik a konzolon. Végül a program a „0; visszatérési értékkel” zárul. nyilatkozat, amely a sikeres végrehajtást jelzi.





A kimeneti képen látható a kezdeti érték, a növekmény utáni érték és a csökkentett érték.



2. példa: Pozitív (+) és negatív (-) operátorok

Míg a pozitív unáris operátort ritkán használják, a negatív operátor alapvető fontosságú egy változó előjelének megváltoztatásához.

#include
Használata névtér std ;

int fő- ( ) {
int pozitívValue = 10 ;
int negatívValue = - pozitívValue ;

cout << 'Pozitív érték: ' << pozitívValue << endl ;
cout << 'Negatív érték: ' << negatívValue << endl ;

Visszatérés 0 ;
}

Ehhez a példakódhoz két egész változót inicializálunk, ezek a „pozitívérték” és a „negatív érték”. A „positiveValue”-hoz 10-es érték tartozik. Ezt követően deklaráljuk a „negativeValue”-t, és hozzárendeljük a „positiveValue” negációjával az unáris mínusz operátor segítségével. Ez az operátor gyakorlatilag megváltoztatja az eredeti érték előjelét. Ezután a „cout” utasítást használjuk a pozitív és a negatív kimenet megjelenítésére a konzolon. Végül a program 0-t ad vissza, ami a fő funkció sikeres befejezését jelzi.

Végrehajtáskor ez a program pozitív és negatív értékeket ad ki.

3. példa: Logikai NEM (!) Operátor

Az unáris operátor a C++ nyelvben, a „!” szimbólum, a logikai NOT operátorként ismert. Úgy tervezték, hogy megfordítsa egy adott kifejezés igazságértékét. Egyetlen operanduson működik, amely általában egy logikai kifejezés vagy feltétel. A logikai NEM művelet „igaz” eredményt ad, ha az operandus „hamis”, és „hamis” eredményt ad, ha az operandus „igaz”.

Íme egy egyszerű példa, amely bemutatja a logikai NOT operátor használatát:

#include
segítségével névtér std ;

int fő- ( ) {
bool igaz = igaz ;
bool hamis = hamis ;

bool eredményNem Igaz = ! igaz ;
bool eredményNem hamis = ! hamis ;

cout << 'Eredeti érték:' << igaz << ', NEM után: ' << eredményNem Igaz << endl ;
cout << 'Eredeti érték:' << hamis << ', NEM után: ' << eredményNem hamis << endl ;

Visszatérés 0 ;
}

Ebben a példában két logikai változót deklarálunk: „isTrue” és „isFalse”. Ezután minden változóra alkalmazzuk a logikai NOT operátort, és az eredményeket „resultNotTrue” és „resultNotFalse” formában tároljuk. A program ezt követően mindkét változóra kiírja az eredeti értékeket és a logikai NEM művelet eredményét.

A program végrehajtásakor észre fogjuk venni, hogy a logikai NOT operátor megfordítja az „isTrue” igazságértékét (kezdetben igazra állítva), és hamissá teszi azt. Hasonlóképpen megfordítja az „isFalse” (eredetileg hamis) igazságértékét, így igaz.

A kimenet világosan szemlélteti a logikai NOT operátor által elért igazságértékek megfordítását.

4. példa: Bitenkénti NEM (~) operátor

A bitenkénti NOT operátor (~) a C++-ban egy unáris operátor, amely végrehajtja az operandusa minden bitjének bitenkénti negációját. Alapvető adattípusokkal működik, különösen integrált adattípusokkal, például egész számokkal. Az eredményt úgy érjük el, hogy az operandusban minden egyes bitet megfordítunk, a 0-kat 1-ekké és az 1-eket 0-kká konvertáljuk.

Használatának illusztrálásához vegye figyelembe a következő kódrészletet:

#include
segítségével névtér std ;

int fő- ( ) {
int eredetiValue = 5 ;

int eredményBitenkéntNem = ~eredetiÉrték ;

cout << 'Eredeti érték:' << eredetiValue << ', Bitwise után NEM: ' << eredményBitenkéntNem << endl ;

Visszatérés 0 ;
}

Ebben a példában egy „originalValue” egész változót deklarálunk „5” értékkel. Ezután a bitenkénti NOT operátort (~) használjuk ehhez a változóhoz. Ennek a változónak az eredményét a „resultBitwiseNot” tárolja. A program ezután kiírja az eredeti értéket és az eredményt a bitenkénti NOT művelet után a „cout” utasítás felhasználásával.

Amikor ezt a programot futtatjuk, látni fogjuk, hogy a bitenkénti NOT operátor megfordítja az „originalValue” bináris reprezentációjának minden bitjét, ami egy új értéket eredményez.

5. példa: Cím és átirányítás operátorok

Az „&” szimbólummal jelölt cím-operátor egy változó memóriahelyének lekérésére szolgál. Egy mutatót ad vissza a változóra, amely lehetővé teszi az értékéhez való közvetett hozzáférést. Az indirekt vagy hivatkozási operátor (*) a mutató által megadott memóriahelyen tárolt értéket kapja meg. Módot biztosít a tényleges adatokkal való közvetett mutatón keresztüli munkavégzéshez.

Értsük meg a fogalmat egy példán keresztül:

#include
segítségével névtér std ;

int fő- ( ) {
int érték = 99 ;

cout << 'Eredeti érték:' << érték << endl ;

int * ptr = & érték ;
cout << 'Memória címe:' << ptr << endl ;

int retrievedValue = * ptr ;
cout << 'Retrieved Value:' << retrievedValue << endl ;

Visszatérés 0 ;
}

Ez a kód példát mutat a cím és az indirekt operátorok használatára. Először egy „value” nevű egész változót inicializálunk 99 értékkel. Az „value” eredeti értéke ezután megjelenik a konzolon. Ezt követően egy „ptr” mutatóváltozót deklarálunk, és az operátor címét (&) alkalmazzuk a „value” memóriacímének „ptr”-hez való hozzárendelésére. A program ezután ezt a memóriacímet adja ki, bemutatva a „cím” operátor alapvető működését.

Ezt követően egy új, „retrievedValue” egész változót deklarálunk, és az indirekt operátort (*) alkalmazzuk a „ptr” által mutatott memóriacímen tárolt érték lekérésére. A visszakeresett érték ezután megjelenik a konzolon.

Következtetés

Ez a cikk átfogó feltárást nyújtott a C++ unáris operátoraira. Kezdetben az unáris operátorokat különféle típusokba soroltuk, beleértve az aritmetikai, logikai, bitenkénti, valamint a címhez és az indirekthez kapcsolódó operátorokat. Valós helyzeteket mutattak be, hogy bemutassák ezen operátorok hasznos alkalmazását. Ezek az operátorok kulcsszerepet játszanak a C++ programozásban, amely lehetővé teszi a fejlesztők számára, hogy hatékonyan dolgozzanak a mutatókkal és kezeljék a memóriát.