Unarni operator u C++

Unarni Operator U C



U C++-u, unarni operator je operator koji radi samo na jednom operandu. Unarni operatori igraju ključnu ulogu u C++-u jer omogućuju manipulaciju vrijednosti pridružene pojedinačnoj varijabli ili izrazu. Ovi svestrani operatori mogu se koristiti u različitim kontekstima kao što je povećanje ili smanjenje varijable, promjena predznaka numeričke vrijednosti ili izvođenje logičke negacije. Ovaj članak istražuje unarne operatore u C++ pokrivajući njihove vrste i primjene te pružajući više primjera za bolje razumijevanje.

C++ podržava nekoliko unarnih operatora, od kojih svaki služi jedinstvenoj svrsi u manipuliranju varijablama. Počnimo s operatorima inkrementiranja i dekrementiranja koji se obično koriste u petljama i raznim algoritmima.

Primjer 1: Operatori povećanja (++) i smanjenja (–).

Unarni operatori inkrementa (++) i dekrementa (–) temeljni su alati u C++ za modificiranje vrijednosti varijable povećanjem ili smanjenjem za 1, respektivno. Operator inkrementiranja (++) dodaje 1 vrijednosti varijable, dok operator dekrementiranja (–) oduzima 1. Ovi se operatori mogu primijeniti na cjelobrojne varijable, varijable s pokretnim zarezom i pokazivače, pružajući fleksibilnost u njihovoj upotrebi.







Istražimo te operatore kroz praktičan primjer:



#include
korištenjem imenski prostor std ;

int glavni ( )
{

int brojač = 0 ;

// Operator povećanja
cout << 'Početna vrijednost: ' << brojač << endl ;

brojač ++ ;
cout << 'Vrijednost nakon povećanja: ' << brojač << endl ;

// Operator smanjivanja
brojač -- ;
cout << 'Vrijednost nakon smanjenja: ' << brojač << endl ;

povratak 0 ;
}

Ovaj jednostavan C++ program uključuje potrebnu ulazno/izlaznu biblioteku toka s “#include ”. Unutar funkcije “main()” instanciramo cjelobrojnu varijablu pod nazivom “counter” i dodjeljujemo joj početnu vrijednost 0. Upotrebom naredbe “cout” ispisujemo početnu vrijednost “counter” na konzoli, pružajući osnova za našu demonstraciju. Idući naprijed, operator inkrementa (counter++) koristi se za podizanje vrijednosti varijable 'counter' za 1.



Nakon ove operacije, ažurirana vrijednost “counter” se prikazuje pomoću druge izjave “cout”. Nakon toga koristimo operator dekrementiranja (brojač—) da smanjimo vrijednost 'brojača' za 1. Ishod se zatim prikazuje na konzoli. Na kraju, program završava s 'return 0;' izjava koja označava uspješno izvršenje.





Izlazna slika prikazuje početnu vrijednost, vrijednost nakon povećanja i smanjenu vrijednost.



Primjer 2: Pozitivni (+) i negativni (-) operatori

Dok se pozitivni unarni operator rijetko koristi, negativni operator je temeljan za promjenu predznaka varijable.

#include
Korištenje imenski prostor std ;

int glavni ( ) {
int pozitivnaVrijednost = 10 ;
int negativeValue = - pozitivnaVrijednost ;

cout << 'Pozitivna vrijednost: ' << pozitivnaVrijednost << endl ;
cout << 'Negativna vrijednost: ' << negativeValue << endl ;

povratak 0 ;
}

Inicijaliziramo dvije cjelobrojne varijable za ovaj primjer koda koje su 'positiveValue' i 'negativeValue'. “PositiveValue” se dodjeljuje s vrijednošću 10. Nakon toga deklariramo “negativeValue” i dodjeljujemo je s negacijom “positiveValue” koristeći unarni operator minus. Ovaj operator učinkovito mijenja predznak izvorne vrijednosti. Zatim koristimo izraz 'cout' za prikaz i pozitivnog i negativnog izlaza na konzoli. Na kraju, program vraća 0 što označava uspješan završetak glavne funkcije.

Kada se izvrši, ovaj program daje pozitivne i negativne vrijednosti.

Primjer 3: Logički NOT (!) operator

Unarni operator u C++, označen sa “!” simbol, poznat je kao logički NOT operator. Dizajniran je za invertiranje istinite vrijednosti zadanog izraza. Djeluje na jednom operandu koji je obično logički izraz ili uvjet. Logička NOT operacija daje 'točan' ishod kada je operand 'netočan' i daje 'netočan' ishod kada je operand 'točan'.

Evo jednostavnog primjera koji pokazuje korištenje logičkog NOT operatora:

#include
korištenjem imenski prostor std ;

int glavni ( ) {
bool je istina = pravi ;
bool isFalse = lažno ;

bool resultNotTrue = ! je istina ;
bool resultNotFalse = ! isFalse ;

cout << 'Izvorna vrijednost: ' << je istina << ', nakon NOT: ' << resultNotTrue << endl ;
cout << 'Izvorna vrijednost: ' << isFalse << ', nakon NOT: ' << resultNotFalse << endl ;

povratak 0 ;
}

U ovom primjeru deklariramo dvije Booleove varijable, 'isTrue' i 'isFalse'. Zatim primjenjujemo logički NOT operator na svaku varijablu, pohranjujući rezultate u 'resultNotTrue' i 'resultNotFalse', redom. Program naknadno ispisuje izvorne vrijednosti i rezultate logičke NOT operacije za obje varijable.

Nakon izvršavanja ovog programa, primijetit ćemo da logički NOT operator poništava istinitu vrijednost 'isTrue' (početno postavljena na istinito), pretvarajući je u lažnu. Slično, preokreće istinitu vrijednost 'isFalse' (izvorno lažno), dajući istinito.

Izlaz jasno ilustrira inverziju istinitih vrijednosti koje se postižu logičkim NOT operatorom.

Primjer 4: Bitno NOT (~) operator

Operator NOT (~) u C++ je unarni operator koji izvodi bitnu negaciju svakog bita svog operanda. Funkcionira s osnovnim tipovima podataka, posebno integralnim, kao što su cijeli brojevi. Ishod se postiže invertiranjem svakog pojedinačnog bita u operandu, pretvaranjem 0s u 1s i 1s u 0s.

Da biste ilustrirali njegovu upotrebu, razmotrite sljedeći isječak koda:

#include
korištenjem imenski prostor std ;

int glavni ( ) {
int originalValue = 5 ;

int rezultatBitwiseNot = ~izvornaVrijednost ;

cout << 'Izvorna vrijednost: ' << originalValue << ', nakon Bitwise NOT: ' << rezultatBitwiseNot << endl ;

povratak 0 ;
}

U ovom primjeru deklariramo cjelobrojnu varijablu 'originalValue' s vrijednošću '5'. Zatim koristimo bitovni NOT operator (~) na ovoj varijabli. Rezultat ove varijable pohranjuje se u “resultBitwiseNot”. Program zatim ispisuje izvornu vrijednost i rezultat nakon bitne NOT operacije korištenjem naredbe 'cout'.

Kada pokrenemo ovaj program, vidjet ćemo da NOT operator po bitovima invertira svaki bit binarne reprezentacije “originalValue”, što rezultira novom vrijednošću.

Primjer 5: Operatori za adresu i posrednost

Operator adrese, označen simbolom '&', služi u svrhu dohvaćanja memorijske lokacije varijable. Vraća pokazivač na varijablu što omogućuje neizravan pristup njezinoj vrijednosti. Operator neizravnosti ili dereferencije (*) dobiva vrijednost koja je pohranjena na memorijskoj lokaciji koja je navedena pokazivačem. Omogućuje neizravan rad sa stvarnim podacima putem pokazivača.

Shvatimo koncept na primjeru:

#include
korištenjem imenski prostor std ;

int glavni ( ) {
int vrijednost = 99 ;

cout << 'Izvorna vrijednost: ' << vrijednost << endl ;

int * ptr = i vrijednost ;
cout << 'Memorijska adresa: ' << ptr << endl ;

int retrievedValue = * ptr ;
cout << 'Dohvaćena vrijednost: ' << retrievedValue << endl ;

povratak 0 ;
}

Ovaj kod predstavlja primjer korištenja adresa i operatora za indirektiju. Prvo, cjelobrojna varijabla pod nazivom 'vrijednost' inicijalizira se s vrijednošću 99. Izvorna vrijednost 'vrijednosti' zatim se šalje na konzolu. Nakon toga se deklarira varijabla pokazivača “ptr”, a operator adrese (&) koristi se za dodjelu memorijske adrese “vrijednosti” “ptr-u”. Program tada ispisuje ovu memorijsku adresu, prikazujući osnovne operacije operatora 'adrese'.

Nakon toga se deklarira nova cjelobrojna varijabla koja je 'retrievedValue', a operator neizravnosti (*) se koristi za dohvaćanje vrijednosti koja je pohranjena na memorijskoj adresi na koju ukazuje 'ptr'. Dohvaćena vrijednost se zatim šalje na konzolu.

Zaključak

Ovaj članak pružio je sveobuhvatno istraživanje unarnih operatora u C++. Počeli smo kategorizacijom unarnih operatora u različite tipove uključujući aritmetičke, logičke, bitovne i one koji se odnose na adresu i indirektnost. Prikazane su situacije iz stvarnog svijeta kako bi se pokazala korisna primjena ovih operatora. Ovi operatori igraju ključnu ulogu u C++ programiranju što programerima omogućuje učinkovit rad s pokazivačima i upravljanje memorijom.