Operadores en C++

Un operador es un símbolo que opera sobre un valor para realizar cálculos matemáticos o lógicos específicos. Forman la base de cualquier lenguaje de programación. En C++, tenemos operadores integrados para proporcionar la funcionalidad requerida.

Un operador opera los operandos . Por ejemplo, 

int c = a + b;

Aquí, ‘+’ es el operador de suma. ‘a’ y ‘b’ son los operandos que se están ‘añadiendo’.

Los operadores en C++ se pueden clasificar en 6 tipos:

  1. Operadores aritméticos
  2. Operadores relacionales
  3. Operadores logicos
  4. Operadores bit a bit
  5. Operadores de Asignación
  6. Operadores ternarios o condicionales
Operators in C++

 

1) Operadores Aritméticos

Estos operadores se utilizan para realizar operaciones aritméticas o matemáticas en los operandos. Por ejemplo, ‘+’ se usa para sumar, ‘-‘ se usa para restar, ‘*’ se usa para multiplicar, etc. 

Los operadores aritméticos se pueden clasificar en 2 tipos:

A) Operadores Unarios: Estos operadores operan o trabajan con un solo operando. Por ejemplo: Operadores de incremento(++) y decremento(–).

Nombre Símbolo Descripción Ejemplo
Operador de incremento ++  Aumenta el valor entero de la variable en uno

int a = 5;

un++; // devuelve 6

Operador de decremento  Disminuye el valor entero de la variable en uno

int a = 5;

a-; // devuelve 4

Ejemplo:

C++

// CPP Program to demonstrate the increment
// and decrement operators
#include <iostream>
using namespace std;
 
int main()
{
    int a = 10;
    cout << "a++ is " << a++ << endl;
    cout << "++a is " << ++a << endl;
 
    int b = 15;
    cout << "b-- is " << b-- << endl;
    cout << "--b is " << --b << endl;
   
    return 0;
}
Producción

a++ is 10
++a is 12
b-- is 15
--b is 13

Nota: ++a y a++ , ambos son operadores de incremento, sin embargo, ambos son ligeramente diferentes.

En ++a , primero se incrementa el valor de la variable y luego se usa en el programa. En a++ , primero se asigna el valor de la variable y luego se incrementa. De manera similar sucede con el operador de decremento.

B) Operadores Binarios: Estos operadores operan o trabajan con dos operandos. Por ejemplo: suma (+), resta (-), etc.

Nombre Símbolo Descripción Ejemplo
Suma + Agrega dos operandos

int a = 3, b = 6;

intc = a+b; // c = 9

Sustracción Resta el segundo operando del primero

int a = 9, b = 6;

int c = ab; // c = 3

Multiplicación * Multiplica dos operandos

int a = 3, b = 6;

intc = a*b; // c = 18

División / Divide el primer operando por el segundo operando 

int a = 12, b = 6;

int c = a/b; // c = 2

Operación Módulo % Devuelve el resto una división entera

int a = 8, b = 6;

intc = a%b; // c = 2

Nota: El operador Modulo operator(%) solo debe usarse con números enteros.

Ejemplo:

C++

// CPP Program to demonstrate the Binary Operators
#include <iostream>
using namespace std;
 
int main()
{
    int a = 8, b = 3;
 
    // Addition operator
    cout << "a + b = " << (a + b) << endl;
   
    // Subtraction operator
    cout << "a - b = " << (a - b) << endl;
   
    // Multiplication operator
    cout << "a * b = " << (a * b) << endl;
   
    // Division operator
    cout << "a / b = " << (a / b) << endl;
   
    // Modulo operator
    cout << "a % b = " << (a % b) << endl;
 
    return 0;
}
Producción

a + b = 11
a - b = 5
a * b = 24
a / b = 2
a % b = 2

2) Operadores relacionales

Estos operadores se utilizan para la comparación de los valores de dos operandos. Por ejemplo, ‘>’ comprueba si un operando es mayor que el otro operando o no, etc. El resultado devuelve un valor booleano, es decir, verdadero o falso.

Nombre Símbolo D escripción Ejemplo
Es igual a == Comprueba si ambos operandos son iguales

int a = 3, b = 6;

a==b; 

// devuelve falso

Mas grande que > Comprueba si el primer operando es mayor que el segundo operando

int a = 3, b = 6;

a>b; 

// devuelve falso

Mayor qué o igual a >= Comprueba si el primer operando es mayor o igual que el segundo operando

int a = 3, b = 6;

a>=b; 

// devuelve falso

Menos que < Comprueba si el primer operando es menor que el segundo operando

int a = 3, b = 6;

a<b;

 // devuelve verdadero

Menos que o igual a <= Comprueba si el primer operando es menor o igual que el segundo operando

int a = 3, b = 6;

a<=b; 

// devuelve verdadero

No igual a != Comprueba si ambos operandos no son iguales

int a = 3, b = 6;

a!=b; 

// devuelve verdadero

Ejemplo:

C++

// CPP Program to demonstrate the Relational Operators
#include <iostream>
using namespace std;
 
int main()
{
    int a = 6, b = 4;
 
    // Equal to operator
    cout << "a == b is " << (a == b) << endl;
   
    // Greater than operator
    cout << "a > b is " << (a > b) << endl;
   
    // Greater than or Equal to operator
    cout << "a >= b is " << (a >= b) << endl;
   
    //  Lesser than operator
    cout << "a < b is " << (a < b) << endl;
   
    // Lesser than or Equal to operator
    cout << "a <= b is " << (a <= b) << endl;
   
    // true
    cout << "a != b is " << (a != b) << endl;
 
    return 0;
}
Producción

a == b is 0
a > b is 1
a >= b is 1
a < b is 0
a <= b is 0
a != b is 1

Aquí, 0 denota falso y 1 denota verdadero . Para leer más sobre esto, consulte el artículo – Operadores relacionales .

3) Operadores Lógicos

Estos operadores se utilizan para combinar dos o más condiciones o restricciones o para complementar la evaluación de la condición original en consideración. El resultado devuelve un valor booleano, es decir, verdadero o falso .

Nombre Símbolo Descripción Ejemplo
Y lógico && Devuelve verdadero solo si todos los operandos son verdaderos o distintos de cero

int a = 3, b = 6;

a&b;

// devuelve verdadero

O lógico || Devuelve verdadero si cualquiera de los operandos es verdadero o distinto de cero

int a = 3, b = 6;

a||b;

// devuelve verdadero

NO lógico ! Devuelve verdadero si el operando es falso o cero

int a = 3;

!a;

// devuelve falso

Ejemplo:

C++

// CPP Program to demonstrate the Logical Operators
#include <iostream>
using namespace std;
 
int main()
{
    int a = 6, b = 4;
 
    // Logical AND operator
    cout << "a && b is " << (a && b) << endl;
   
    // Logical OR operator
    cout << "a ! b is " << (a > b) << endl;
   
    // Logical NOT operator
    cout << "!b is " << (!b) << endl;
 
    return 0;
}
Producción

a && b is 1
a ! b is 1
!b is 0

Aquí, 0 denota falso y 1 denota verdadero . Para leer más sobre esto, consulte el artículo – Operadores lógicos .

4) Operadores bit a bit

Estos operadores se utilizan para realizar operaciones a nivel de bits en los operandos. Los operadores se convierten primero a nivel de bits y luego se realiza el cálculo en los operandos. Las operaciones matemáticas como la suma, la resta, la multiplicación, etc. se pueden realizar a nivel de bit para un procesamiento más rápido. 

Nombre Símbolo Descripción Ejemplo
Y binario & Copia un bit al resultado evaluado si existe en ambos operandos

int a = 2, b = 3;

(a y b); //devuelve 2

O binario | Copia un bit al resultado evaluado si existe en alguno de los operandos

int a = 2, b = 3;

(a | b); //devuelve 3

XOR binario ^ Copia el bit al resultado evaluado si está presente en cualquiera de los operandos pero no en ambos

int a = 2, b = 3;

(a ^ b); //devuelve 1

Shift izquierdo << Cambia el valor a la izquierda por el número de bits especificado por el operando derecho.

int a = 2, b = 3;

(un << 1); //devuelve 4

Giro a la derecha >> Cambia el valor a la derecha por el número de bits especificado por el operando derecho.

int a = 2, b = 3;

(un >> 1); //devuelve 1

Complemento de uno ~ Cambia dígitos binarios 1 a 0 y 0 a 1

int b = 3;

(~b); //devuelve -4

Nota: Solo los tipos de datos char e int se pueden usar con operadores bit a bit.

Ejemplo:

C++

// CPP Program to demonstrate the Relational Operators
#include <iostream>
using namespace std;
 
int main()
{
    int a = 6, b = 4;
 
    // Equal to operator
    cout << "a == b is " << (a == b) << endl;
   
    // Greater than operator
    cout << "a > b is " << (a > b) << endl;
   
    // Greater than or Equal to operator
    cout << "a >= b is " << (a >= b) << endl;
   
    //  Lesser than operator
    cout << "a < b is " << (a < b) << endl;
   
    // Lesser than or Equal to operator
    cout << "a <= b is " << (a <= b) << endl;
   
    // true
    cout << "a != b is " << (a != b) << endl;
 
    return 0;
}
Producción

a & b = 4
a | b = 6
a ^ b = 2
a>>1 = 3
a<<1 = 12
~(a) = -7

Para obtener más información al respecto, consulte el artículo: Operadores bit a bit .

5) Operadores de asignación

Estos operadores se utilizan para asignar valor a una variable. El operando del lado izquierdo del operador de asignación es una variable y el operando del lado derecho del operador de asignación es un valor. El valor del lado derecho debe ser del mismo tipo de datos que la variable del lado izquierdo; de lo contrario, el compilador generará un error. 

Nombre Símbolo Descripción Ejemplo
Operador de asignación = Asigna el valor de la derecha a la variable de la izquierda 

int a = 2; 

// un = 2

Operador de adición y asignación += Primero suma el valor actual de la variable de la izquierda al valor de la derecha y luego asigna el resultado a la variable de la izquierda 

int a = 2, b = 4;

a+=b; // un = 6

Operador de resta y asignación -= Primero resta el valor de la derecha del valor actual de la variable de la izquierda y luego asigna el resultado a la variable de la izquierda

int a = 2, b = 4;

a-=b; // un = -2

Operador de multiplicación y asignación *= Primero multiplica el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda

int a = 2, b = 4;

a*=b; // un = 8

Operador de división y asignación /= Primero divide el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda

int a = 4, b = 2;

a/=b; // un = 2

Ejemplo:

C++

// CPP Program to demonstrate the Assignment Operators
#include <iostream>
using namespace std;
 
int main()
{
    int a = 6, b = 4;
 
    // Assignment Operator
    cout << "a = " << a << endl;
   
    //  Add and Assignment Operator
    cout << "a += b is " << (a += b) << endl;
   
    // Subtract and Assignment Operator
    cout << "a -= b is " << (a -= b) << endl;
   
    //  Multiply and Assignment Operator
    cout << "a *= b is " << (a *= b) << endl;
   
    //  Divide and Assignment Operator
    cout << "a /= b is " << (a /= b) << endl;
 
    return 0;
}
Producción

a = 6
a += b is 10
a -= b is 6
a *= b is 24
a /= b is 6

6) Operadores ternarios o condicionales (?:)

Este operador devuelve el valor basado en la condición. 

Expression1? Expression2: Expression3

¿ El operador ternario ? determina la respuesta sobre la base de la evaluación de Expression1 . Si es true , Expression2 se evalúa y se usa como respuesta para la expresión. Si Expression1 es false , Expression3 se evalúa y se utiliza como respuesta para la expresión.

Este operador toma tres operandos , por lo que se le conoce como Operador Ternario. 

Ejemplo:

C++

// CPP Program to demonstrate the Conditional Operators
#include <iostream>
using namespace std;
 
int main()
{
    int a = 3, b = 4;
 
    // Conditional Operator
    int result = (a < b) ? b : a;
    cout << "The greatest number is " << result << endl;
 
    return 0;
}
Producción

The greatest number is 4

7) Hay algunos otros operadores comunes disponibles en C++ además de los operadores discutidos anteriormente. La siguiente es una lista de estos operadores discutidos en detalle:

A) Operador sizeof: Este operador unario se utiliza para calcular el tamaño de su operando o variable.

sizeof(char); // returns 1

B) Operador de coma (,): este operador binario (representado por el token) se usa para evaluar su primer operando y descarta el resultado, luego evalúa el segundo operando y devuelve este valor (y tipo). Se utiliza para combinar varias expresiones juntas.

int a = 6;
int b = (a+1, a-2, a+5); // b = 10

C) -> Operador: Este operador se utiliza para acceder a las variables de clases o estructuras.

cout<<emp->first_name;

D) Operador de conversión: este operador unario se utiliza para convertir un tipo de datos en otro.

float a = 11.567;
int c = (int) a; // returns 11

E) Operador Punto (.): Este operador se utiliza para acceder a miembros de variables de estructura u objetos de clase en C++.

cout<<emp.first_name;

F) Operador &: Este es un operador puntero y se usa para representar la dirección de memoria de un operando.

G) * Operador: Este es un Operador de Indirección

C++

// CPP Program to demonstrate the & and * Operators
#include <iostream>
using namespace std;
 
int main()
{
    int a = 6;
    int* b;
    int c;
    //  & Operator
    b = &a;
 
    // * Operator
    c = *b;
    cout << " a = " << a << endl;
    cout << " b = " << b << endl;
    cout << " c = " << c << endl;
 
    return 0;
}
Producción

 a = 6
 b = 0x7ffe2064d048
 c = 6

H) << Operador: Este es el operador de salida. Imprime el valor de salida.

I) >> Operador: Este es el operador de entrada. Obtiene el valor de entrada.

int a;
cin>>a;
cout<<a;

Tabla de precedencia de operadores

Precedencia Operador Descripción Asociatividad
1. () Paréntesis (llamada de función) de izquierda a derecha
[] Corchetes (subíndice de array)  
. Selección de miembros a través del nombre del objeto  
-> Selección de miembros a través de un puntero  
++/– Incremento/decremento de sufijo  
2. ++/– Prefijo incremento/decremento De derecha a izquierda
+/- Más/menos unario  
!~ Negación lógica/complemento bit a bit  
(escribe) Cast (convertir valor a valor temporal de tipo)  
* Desreferencia  
& Dirección (del operando)  
tamaño de Determine el tamaño en bytes en esta implementación  
3. *,/,% Multiplicación/división/módulo de izquierda a derecha
4. +/- Suma resta de izquierda a derecha
5. << , >> Desplazamiento bit a bit a la izquierda, desplazamiento bit a bit a la derecha de izquierda a derecha
6. < , <= Relacional menor que/menor que o igual a de izquierda a derecha
> , >= Relacional mayor que/mayor que o igual a de izquierda a derecha
7. == , != Relacional es igual a/no es igual a de izquierda a derecha
8. & Y bit a bit de izquierda a derecha
9. ^ OR exclusivo bit a bit de izquierda a derecha
10 | Bit a bit inclusivo O de izquierda a derecha
11 && Y lógico de izquierda a derecha
12 || O lógico de izquierda a derecha
13 ?: Condicional ternario De derecha a izquierda
14 = Asignación De derecha a izquierda
+= , -= Asignación de sumas y restas  
*= , /= Asignación de multiplicación/división  
%= , &= Módulo/asignación AND bit a bit  
^= , |= Asignación OR exclusiva/inclusiva bit a bit  
<>= Asignación de desplazamiento bit a bit a la izquierda/derecha  
15. , separador de expresiones de izquierda a derecha

Publicación traducida automáticamente

Artículo escrito por anshikajain26 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *