Unární operátor v C++

Unarni Operator V C



V C++ je unární operátor operátor, který pracuje pouze s jedním operandem. Unární operátory hrají v C++ klíčovou roli tím, že umožňují manipulaci s hodnotou spojenou se singulární proměnnou nebo výrazem. Tyto všestranné operátory lze použít v různých kontextech, jako je inkrementace nebo dekrementace proměnné, změna znaménka číselné hodnoty nebo provádění logické negace. Tento článek zkoumá unární operátory v C++ tím, že pokrývá jejich typy a aplikace a poskytuje několik příkladů pro lepší pochopení.

C++ podporuje několik unárních operátorů, z nichž každý slouží jedinečnému účelu při manipulaci s proměnnými. Začněme operátory inkrementace a dekrementace, které se běžně používají ve smyčkách a různých algoritmech.

Příklad 1: Operátory zvýšení (++) a snížení (–).

Jednotné operátory inkrementace (++) a dekrementace (–) jsou základními nástroji v C++ pro úpravu hodnoty proměnné jejím zvýšením nebo snížením o 1, resp. Operátor inkrementace (++) přidá 1 k hodnotě proměnné, zatímco operátor dekrementace (–) odečte 1. Tyto operátory lze použít na proměnné typu integer, floating-point a pointer, což poskytuje flexibilitu při jejich použití.







Pojďme si tyto operátory prozkoumat na praktickém příkladu:



#include
použitím jmenný prostor std ;

int hlavní ( )
{

int čelit = 0 ;

// Operátor zvýšení
cout << 'Počáteční hodnota: ' << čelit << endl ;

čelit ++ ;
cout << 'Hodnota po zvýšení: ' << čelit << endl ;

// Operátor snížení
čelit -- ;
cout << 'Hodnota po snížení: ' << čelit << endl ;

vrátit se 0 ;
}

Tento jednoduchý program v C++ obsahuje nezbytnou knihovnu vstupních/výstupních streamů s „#include “. V rámci funkce „main()“ vytvoříme instanci celočíselné proměnné s názvem „counter“ a přiřadíme jí počáteční hodnotu 0. Pomocí příkazu „cout“ vytiskneme počáteční hodnotu „counter“ do konzole a poskytneme základ pro naši demonstraci. Vpřed se inkrementační operátor (counter++) používá ke zvýšení hodnoty proměnné „counter“ o 1.



Po této operaci se aktualizovaná hodnota „counter“ zobrazí pomocí dalšího příkazu „cout“. Následně pomocí dekrementačního operátoru (counter—) snížíme hodnotu „counter“ o 1. Výsledek se následně zobrazí na konzole. Nakonec program končí „návratem 0;“ prohlášení, které indikuje úspěšné provedení.





Výstupní obrázek ukazuje počáteční hodnotu, hodnotu po přírůstku a sníženou hodnotu.



Příklad 2: Kladné (+) a záporné (-) operátory

Zatímco kladný unární operátor se používá zřídka, záporný operátor je zásadní pro změnu znaménka proměnné.

#include
Použitím jmenný prostor std ;

int hlavní ( ) {
int pozitivníValue = 10 ;
int záporná hodnota = - pozitivníValue ;

cout << 'Pozitivní hodnota:' << pozitivníValue << endl ;
cout << 'Záporná hodnota: ' << záporná hodnota << endl ;

vrátit se 0 ;
}

Pro tento příklad kódu inicializujeme dvě celočíselné proměnné, které jsou „positiveValue“ a „negativeValue“. „PozitivníHodnota“ je přiřazena s hodnotou 10. Následně „negativníValue“ deklarujeme a přiřadíme ji negací „pozitivníHodnota“ pomocí unárního operátoru mínus. Tento operátor účinně mění znaménko původní hodnoty. Potom použijeme příkaz „cout“ k zobrazení pozitivního i negativního výstupu na konzole. Nakonec program vrátí 0, což znamená úspěšné dokončení hlavní funkce.

Po spuštění tento program vypíše kladné a záporné hodnoty.

Příklad 3: Logický operátor NOT (!).

Unární operátor v C++, označený „!“ symbol, je znám jako logický operátor NOT. Je navržen tak, aby invertoval pravdivostní hodnotu daného výrazu. Funguje na jediném operandu, což je typicky logický výraz nebo podmínka. Logická operace NOT poskytuje „pravdivý“ výsledek, když je operand „nepravdivý“, a poskytuje „nepravdivý“ výsledek, když je operand „pravdivý“.

Zde je jednoduchý příklad, který demonstruje použití logického operátoru NOT:

#include
použitím jmenný prostor std ;

int hlavní ( ) {
bool je pravda = skutečný ;
bool isFalse = Nepravdivé ;

bool výsledekNení Pravda = ! je pravda ;
bool resultNotFalse = ! isFalse ;

cout << 'Původní hodnota:' << je pravda << ', Po NE: ' << výsledekNení Pravda << endl ;
cout << 'Původní hodnota:' << isFalse << ', Po NE: ' << resultNotFalse << endl ;

vrátit se 0 ;
}

V tomto příkladu deklarujeme dvě booleovské proměnné, „isTrue“ a „isFalse“. Potom na každou proměnnou aplikujeme logický operátor NOT a výsledky uložíme do „resultNotTrue“ a „resultNotFalse“. Program následně vypíše původní hodnoty a výsledky logické operace NOT pro obě proměnné.

Po spuštění tohoto programu si všimneme, že logický operátor NOT obrátí pravdivostní hodnotu „isTrue“ (původně nastavenou na true) a učiní ji nepravdivou. Podobně převrací pravdivostní hodnotu „isFalse“ (původně nepravda), čímž dává hodnotu true.

Výstup jasně ilustruje inverzi pravdivostních hodnot, kterých je dosaženo logickým operátorem NOT.

Příklad 4: Bitový operátor NOT (~).

Bitový operátor NOT (~) v C++ je unární operátor, který provádí bitovou negaci každého bitu svého operandu. Funguje se základními datovými typy, konkrétně s integrálními, jako jsou celá čísla. Výsledek je dosažen invertováním každého jednotlivého bitu v operandu, převodem 0s na 1s a 1s na 0s.

Pro ilustraci jeho použití zvažte následující fragment kódu:

#include
použitím jmenný prostor std ;

int hlavní ( ) {
int původníHodnota = 5 ;

int resultBitwiseNot = ~původní hodnota ;

cout << 'Původní hodnota:' << původníHodnota << ', Po Bitwise NOT: ' << resultBitwiseNot << endl ;

vrátit se 0 ;
}

V tomto příkladu deklarujeme celočíselnou proměnnou „originalValue“ s hodnotou „5“. Dále u této proměnné použijeme bitový operátor NOT (~). Výsledek této proměnné je uložen v „resultBitwiseNot“. Program poté vypíše původní hodnotu a výsledek po bitové operaci NOT pomocí příkazu „cout“.

Když spustíme tento program, uvidíme, že bitový operátor NOT invertuje každý bit binární reprezentace „originalValue“, což má za následek novou hodnotu.

Příklad 5: Adresní a nepřímé operátory

Adresa operátora, označená symbolem „&“, slouží k získání místa v paměti proměnné. Vrací ukazatel na proměnnou, který umožňuje nepřímý přístup k její hodnotě. Operátor nepřímého nebo dereference (*) získá hodnotu, která je uložena v místě paměti určeném ukazatelem. Poskytuje způsob, jak nepřímo pracovat se skutečnými daty prostřednictvím ukazatele.

Ukažme si koncept na příkladu:

#include
použitím jmenný prostor std ;

int hlavní ( ) {
int hodnota = 99 ;

cout << 'Původní hodnota:' << hodnota << endl ;

int * ptr = & hodnota ;
cout << 'Adresa paměti: ' << ptr << endl ;

int retrievedValue = * ptr ;
cout << 'Načtená hodnota: ' << retrievedValue << endl ;

vrátit se 0 ;
}

Tento kód je příkladem použití adresových a nepřímých operátorů. Nejprve je inicializována celočíselná proměnná s názvem „value“ s hodnotou 99. Původní hodnota „value“ je poté odeslána do konzole. Následně je deklarována ukazatelová proměnná „ptr“ a adresa operátora (&) je použita k přiřazení adresy paměti „hodnoty“ k „ptr“. Program poté vypíše tuto adresu paměti a předvede základní operaci operátoru „adresy“.

Poté je deklarována nová celočíselná proměnná, která je „retrievedValue“ a operátor nepřímého směru (*) je použit k načtení hodnoty, která je uložena na adrese paměti označené „ptr“. Načtená hodnota je poté odeslána do konzole.

Závěr

Tento článek poskytuje komplexní průzkum unárních operátorů v C++. Začali jsme kategorizací unárních operátorů do různých typů včetně aritmetických, logických, bitových a operátorů souvisejících s adresou a nepřímostí. Pro demonstraci užitečné aplikace těchto operátorů byly ukázány reálné situace. Tito operátoři hrají klíčovou roli v programování v C++, což umožňuje vývojářům efektivně pracovat s ukazateli a spravovat paměť.