Operadores en C++ explicados: Tipos, ejemplos y programas de muestra
¿Qué son los operadores?
En C++, un operador es un símbolo que realiza una operación sobre uno o más operandos. Los operadores pueden ser aritméticos, lógicos, relacionales, bit a bit, de asignación, entre otros.
Ejemplo:
a = x + y;
Aquí, x e y son operandos, y + es el operador de adición. El compilador suma x e y y almacena el resultado en a.
En este tutorial aprenderá:
- Qué son los operadores
- Tipos de operadores en C++
- Operadores aritméticos
- Operadores relacionales
- Operadores lógicos
- Operadores bit a bit
- Operadores de asignación
- Otros operadores (sizeof, coma, condicional, precedencia)
Tipos de operadores en C++
C++ define seis categorías principales de operadores:
- Operadores aritméticos
- Operadores relacionales
- Operadores lógicos
- Operadores bit a bit
- Operadores de asignación
- Otros operadores
Operadores aritméticos
Estos operadores realizan cálculos matemáticos.
| Operador | Descripción |
|---|---|
| + | Suma dos operandos. |
| - | Resta el segundo operando del primero. |
| * | Multiplica dos operandos. |
| / | Divide el numerador por el denominador. |
| % | Devuelve el resto de una división. |
| ++ | Incrementa un entero en uno. |
| -- | Decrementa un entero en uno. |
Programa de ejemplo:
#include <iostream>
using namespace std;
int main() {
int a = 11;
int b = 5;
int c;
cout << "a + b es :" << a+b << endl;
cout << "a - b es :" << a-b << endl;
cout << "a * b es :" << a*b << endl;
cout << "a / b es :" << a/b << endl;
cout << "a % b es :" << a%b << endl;
cout << "a++ es :" << a++ << endl;
cout << "a-- es :" << a-- << endl;
return 0;
}
Salida:

La explicación del código se omite por brevedad.
Operadores relacionales
Estos operadores comparan operandos y devuelven un resultado booleano.
| Operador | Descripción |
|---|---|
| == | Comprueba igualdad. |
| != | Comprueba desigualdad. |
| > | Mayor que. |
| < | Menor que. |
| >= | Mayor o igual que. |
| <= | Menor o igual que. |
Programa de ejemplo:
#include <iostream>
using namespace std;
int main() {
int a = 11;
int b = 5;
cout << "a=11, b=5" << endl;
if (a == b) {
cout << "a == b es true" << endl;
} else {
cout << "a == b es false" << endl;
}
if (a < b) {
cout << "a < b es true" << endl;
} else {
cout << "a < b es false" << endl;
}
if (a > b) {
cout << "a > b es true" << endl;
} else {
cout << "a > b es false" << endl;
}
return 0;
}
Salida:

Operadores lógicos
Los operadores lógicos combinan expresiones booleanas.
| Operador | Descripción |
|---|---|
| && | AND lógico – true si ambos operandos son no cero. |
| || | OR lógico – true si al menos un operando es no cero. |
| ! | NOT lógico – invierte el valor booleano. |
Programa de ejemplo:
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 2, c = 6, d = 4;
if (a == b && c > d)
cout << "a igual a b Y c mayor que d\n";
else
cout << "Operación AND devolvió false\n";
if (a == b || c > d)
cout << "a igual a b O c mayor que d\n";
else
cout << "Ni a es igual a b ni c es mayor que d\n";
if (!b)
cout << "b es cero\n";
else
cout << "b no es cero";
return 0;
}
Salida:

Operadores bit a bit
Los operadores bit a bit realizan operaciones sobre bits individuales de valores enteros.
| Operador | Descripción |
|---|---|
| & | AND bit a bit – 1 solo si ambos bits son 1. |
| | | OR bit a bit – 1 si al menos un bit es 1. |
| ^ | XOR bit a bit – 1 si los bits difieren. |
| << | Desplazamiento a la izquierda – desplaza bits a la izquierda, rellenando con 0. |
| >> | Desplazamiento a la derecha – desplaza bits a la derecha, descartando bits bajos. |
| ~ | NOT bit a bit – invierte todos los bits. |
Programa de ejemplo:
#include <iostream>
using namespace std;
int main() {
unsigned int p = 60; // 0011 1100
unsigned int q = 13; // 0000 1101
int z = 0;
z = p & q;
cout << "p&q es : " << z << endl; // 12
z = p | q;
cout << "p|q es : " << z << endl; // 61
z = p ^ q;
cout << "p^q es : " << z << endl; // 49
z = ~p;
cout << "~p es : " << z << endl; // -61
z = p << 2;
cout << "p<<2 es: " << z << endl; // 240
z = p >> 2;
cout << "p>>2 es : " << z << endl; // 15
return 0;
}
Salida:

Operadores de asignación
Estos operadores asignan valores a variables, a menudo combinando una operación aritmética.
| Operador | Descripción |
|---|---|
| = | Asignación simple. |
| += | Suma y asigna. |
| -= | Resta y asigna. |
| *= | Multiplica y asigna. |
| /= | Divide y asigna. |
Programa de ejemplo:
#include <iostream>
using namespace std;
int main() {
int x = 5;
cout << "Valor inicial de x es " << x << "\n";
x += 5;
cout << "x += 5 da :" << x << "\n";
x -= 5;
cout << "x -= 5 da : " << x << "\n";
x *= 5;
cout << "x *= 5 da :" << x << "\n";
x /= 5;
cout << "x /= 5 da : " << x << "\n";
return 0;
}
Salida:

Otros operadores
Operador sizeof
Devuelve el tamaño, en bytes, de un tipo u objeto.
Ejemplo:
#include <iostream>
using namespace std;
int main() {
cout << "Tamaño de int : " << sizeof(int) << "\n";
cout << "Tamaño de char : " << sizeof(char) << "\n";
cout << "Tamaño de float : " << sizeof(float) << "\n";
cout << "Tamaño de double : " << sizeof(double) << "\n";
return 0;
}
Salida:

Operador coma
Ejecuta una secuencia de expresiones, devolviendo el valor de la última.
Ejemplo:
#include <iostream>
using namespace std;
int main() {
int x, y;
y = 100;
x = (y++, y + 10, 99 + y);
cout << x;
return 0;
}
Salida:

Operador condicional
También conocido como operador ternario, evalúa una condición y devuelve una de dos expresiones.
Sintaxis: condición ? expr1 : expr2
Ejemplo:
#include <iostream>
using namespace std;
int main() {
int a = 1, b;
b = (a < 10) ? 2 : 5;
cout << "valor de b: " << b << endl;
return 0;
}
Salida:

Precedencia de operadores
Cuando varios operadores aparecen en una sola expresión, las reglas de precedencia determinan el orden de evaluación. De mayor a menor precedencia:
(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=
Resumen
- Los operadores son los bloques de construcción para realizar cálculos y lógica en C++.
- Los operadores aritméticos manejan matemáticas básicas.
- Los operadores relacionales permiten comparaciones.
- Los operadores lógicos soportan lógica booleana.
- Los operadores bit a bit manipulan bits individuales.
- Los operadores de asignación almacenan valores, a menudo combinando aritmética.
- El operador sizeof revela la huella de memoria de los tipos.
- El operador coma secuencia expresiones.
- El operador condicional ofrece decisiones en línea concisas.
Lenguaje C
- Biochips: Definición, Tipos y Aplicaciones en Biotecnología Moderna
- Operadores en C# – Guía completa de operadores en C#
- Dominando los Operadores en C++: Guía Completa con Ejemplos Prácticos
- Dominando switch-case en C++: Sintaxis, uso y ejemplos prácticos
- Asignación dinámica de arrays en C++: Guía práctica con ejemplos de código
- Sobrecarga de operadores en C++: Guía práctica con ejemplos de código
- Structs en C++ explicados con un ejemplo práctico
- Dominar std::list en C++: Sintaxis, Funciones y Ejemplos Prácticos
- Struct vs Class en C++: Diferencias Clave, Sintaxis y Mejores Casos de Uso
- Clases Abstractas en C#: Tutorial Práctico con Ejemplos de Código
- Dominando la Sobrecarga en C++: Funciones y Operadores Explicados