Operador unari en C++

Operador Unari En C



En C++, un operador unari és un operador que només funciona en un únic operand. Els operadors unaris tenen un paper crucial en C++ ja que permeten la manipulació del valor associat a una variable o expressió singular. Aquests operadors versàtils es poden utilitzar en diversos contextos, com ara augmentar o disminuir una variable, canviar el signe d'un valor numèric o realitzar una negació lògica. Aquest article explora els operadors unaris en C++ cobrint els seus tipus i aplicacions i proporcionant diversos exemples per a una millor comprensió.

C++ admet diversos operadors unaris, cadascun amb un propòsit únic en la manipulació de les variables. Comencem amb els operadors d'increment i decrement que s'utilitzen habitualment en bucles i diversos algorismes.

Exemple 1: Operadors d'increment (++) i de disminució (–).

Els operadors unaris d'increment (++) i decrement (–) són eines fonamentals en C++ per modificar el valor d'una variable augmentant-lo o disminuint-lo en 1, respectivament. L'operador d'increment (++) afegeix 1 al valor de la variable, mentre que l'operador de decrement (–) resta 1. Aquests operadors es poden aplicar a variables senceres, de coma flotant i de punter, proporcionant flexibilitat en el seu ús.







Explorem aquests operadors mitjançant un exemple pràctic:



#inclou
utilitzant espai de noms std ;

int principal ( )
{

int comptador = 0 ;

// Operador d'increment
cout << 'Valor inicial: ' << comptador << endl ;

comptador ++ ;
cout << 'Valor després de l'increment:' << comptador << endl ;

// Operador de disminució
comptador -- ;
cout << 'Valor després del decrement:' << comptador << endl ;

tornar 0 ;
}

Aquest senzill programa C++ inclou la biblioteca de flux d'entrada/sortida necessària amb '#include '. Dins de la funció “main()”, instanciem una variable entera anomenada “counter” i li assignem un valor inicial de 0. Utilitzant la instrucció “cout”, imprimim el valor inicial del “counter” a la consola, proporcionant una base per a la nostra demostració. Avançant, s'utilitza l'operador d'increment (comptador++) per augmentar el valor de la variable 'comptador' en 1.



Després d'aquesta operació, el valor actualitzat de 'comptador' es mostra amb una altra instrucció 'cout'. Posteriorment, utilitzem l'operador de disminució (comptador—) per reduir el valor de 'comptador' en 1. El resultat es mostra posteriorment a la consola. Finalment, el programa conclou amb el 'retorn 0'; declaració que indica una execució correcta.





La imatge de sortida mostra el valor inicial, el valor després de l'increment i el valor disminuït.



Exemple 2: Operadors positius (+) i negatius (-).

Tot i que l'operador unari positiu s'utilitza rarament, l'operador negatiu és fonamental per canviar el signe d'una variable.

#inclou
Utilitzant espai de noms std ;

int principal ( ) {
int valor positiu = 10 ;
int valor negatiu = - valor positiu ;

cout << 'Valor positiu:' << valor positiu << endl ;
cout << 'Valor negatiu:' << valor negatiu << endl ;

tornar 0 ;
}

Inicialitzem dues variables senceres per a aquest codi d'exemple que són 'positiveValue' i 'negativeValue'. El 'valor positiu' s'assigna amb el valor de 10. Posteriorment, declarem el 'Valor positiu' i l'assignem amb la negació de 'Valor positiu' mitjançant l'operador menys unari. Aquest operador canvia efectivament el signe del valor original. A continuació, utilitzem la declaració 'cout' per mostrar tant la sortida positiva com la negativa a la consola. Finalment, el programa retorna 0 que indica la finalització correcta de la funció principal.

Quan s'executa, aquest programa genera els valors positius i negatius.

Exemple 3: Operador lògic NOT (!).

L'operador unari en C++, denotat per '!' símbol, es coneix com l'operador lògic NOT. Està dissenyat per invertir el valor de veritat d'una expressió determinada. Funciona amb un únic operand que normalment és una expressió lògica o una condició. L'operació NOT lògica produeix un resultat 'vertader' quan l'operand és 'fals' i produeix un resultat 'fals' quan l'operand és 'cert'.

Aquí teniu un exemple senzill que demostra l'ús de l'operador lògic NOT:

#inclou
utilitzant espai de noms std ;

int principal ( ) {
bool és cert = veritat ;
bool és fals = fals ;

bool resultatNotTrue = ! és cert ;
bool resultatNotFalse = ! és fals ;

cout << 'Valor original:' << és cert << ', després de NO: ' << resultatNotTrue << endl ;
cout << 'Valor original:' << és fals << ', després de NO: ' << resultatNotFalse << endl ;

tornar 0 ;
}

En aquest exemple, declarem dues variables booleanes, 'isTrue' i 'isFalse'. A continuació, apliquem l'operador NOT lògic a cada variable, emmagatzemant els resultats en 'resultatNotTrue' i 'resultatNotFalse', respectivament. Posteriorment, el programa imprimeix els valors originals i els resultats de l'operació lògica NOT per a ambdues variables.

En executar aquest programa, ens adonarem que l'operador lògic NOT inverteix el valor de veritat de 'isTrue' (inicialment establert en true), fent-lo fals. De la mateixa manera, inverteix el valor de veritat de 'isFalse' (originalment fals), donant lloc a cert.

La sortida il·lustra clarament la inversió dels valors de veritat que s'aconsegueix amb l'operador lògic NOT.

Exemple 4: operador NO (~) per bits

L'operador NOT bit a bit (~) en C++ és un operador unari que realitza la negació bit a bit de cada bit del seu operand. Funciona amb tipus de dades fonamentals, concretament integrals, com ara nombres enters. El resultat s'aconsegueix invertint cada bit individual de l'operand, convertint 0s en 1s i 1s en 0s.

Per il·lustrar el seu ús, tingueu en compte el següent fragment de codi:

#inclou
utilitzant espai de noms std ;

int principal ( ) {
int valor original = 5 ;

int resultat No bit a bit = ~valor original ;

cout << 'Valor original:' << valor original << ', Després de bit a bit NO: ' << resultat No bit a bit << endl ;

tornar 0 ;
}

En aquest exemple, declarem una variable entera 'originalValue' amb el valor de '5'. A continuació, utilitzem l'operador NOT bit a bit (~) en aquesta variable. El resultat d'aquesta variable s'emmagatzema a 'resultBitwiseNot'. A continuació, el programa imprimeix el valor original i el resultat després de l'operació NOT bit a bit utilitzant la instrucció 'cout'.

Quan executem aquest programa, veurem que l'operador NOT bit a bit inverteix cada bit de la representació binària de 'originalValue', donant lloc a un nou valor.

Exemple 5: Operadors d'adreça i indicació

L'operador de l'adreça, indicat amb el símbol “&”, serveix per recuperar la ubicació de memòria d'una variable. Retorna un punter a la variable que permet un accés indirecte al seu valor. L'operador d'indirecció o desreferència (*) obté el valor que s'emmagatzema a la ubicació de memòria especificada per un punter. Proporciona una manera de treballar indirectament amb les dades reals mitjançant un punter.

Entenem el concepte amb un exemple:

#inclou
utilitzant espai de noms std ;

int principal ( ) {
int valor = 99 ;

cout << 'Valor original:' << valor << endl ;

int * ptr = & valor ;
cout << 'Adreça de memòria:' << ptr << endl ;

int valor recuperat = * ptr ;
cout << 'Valor recuperat:' << valor recuperat << endl ;

tornar 0 ;
}

Aquest codi exemplifica la utilització d'operadors d'adreça i d'indirecció. Primer, una variable entera anomenada 'valor' s'inicializa amb el valor de 99. A continuació, el valor original de 'valor' s'envia a la consola. Posteriorment, es declara una variable punter 'ptr' i s'utilitza l'operador d'adreça (&) per assignar l'adreça de memòria de 'valor' a 'ptr'. Aleshores, el programa emet aquesta adreça de memòria, mostrant el funcionament bàsic de l'operador 'adreça'.

Després d'això, es declara una nova variable entera que és 'recuperadaValor' i s'utilitza l'operador d'indirecció (*) per recuperar el valor que s'emmagatzema a l'adreça de memòria apuntada per 'ptr'. El valor recuperat s'envia a la consola.

Conclusió

Aquest article va oferir una exploració completa dels operadors unaris en C++. Vam començar classificant els operadors unaris en diversos tipus, inclosos els aritmètics, lògics, per bits i els relacionats amb l'adreça i la indirecta. Es van exemplificar situacions del món real per demostrar l'aplicació útil d'aquests operadors. Aquests operadors tenen un paper fonamental en la programació C++ que permet als desenvolupadors treballar amb punters de manera eficient i gestionar la memòria.