English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Tutoriales básicos

C++ Control de flujo

C++ Función

C++ Arreglo & cadena

C++ Estructuras de datos

C++ Clase & objeto

C++ Punteros

C++ Herencia

C++ STL Tutorial

C++ Manual de referencia

C++ Operadores

En este tutorial, aprenderemos C ++Diferentes tipos de operadores. En la programación, los operadores son símbolos que realizan operaciones en valores o variables.

Los operadores son símbolos que realizan operaciones en variables y valores. Por ejemplo,+Es el operador utilizado para la adición, mientras que - Es el operador utilizado para la sustracción.

C ++中的运算符可以分为六种类型:

  1. 算术运算符

  2. operador de asignación

  3. Operadores de relación

  4. Operadores lógicos

  5. Operadores de bits

  6. 其他运算符

1. C ++算术运算符

算术运算符用于对变量和数据执行算术运算。例如,

a + b;

在此,+运算符用于将两个变量a和b相加。同样,C ++los operadores en otros operadores pueden dividirse en seis tipos:

Supongamos que el valor de la variable A es 10,el valor de la variable B es 2En,

OperadoresDescripciónEjemplo
+0, entonces:operador de decremento, el valor entero disminuye + multiplicar dos operandos 30
-sumar dos operandosoperador de decremento, el valor entero disminuye - multiplicar dos operandos -10
*restar el segundo operando del primer operandooperador de decremento, el valor entero disminuye * multiplicar dos operandos 2B dará
/00molleja la fracción entre el numerador y el denominador / B 2
%A daráoperador de módulo, el resto de la división entera
++B % A dará 0 1operador de decremento, el valor entero disminuye++ Se obtendrá 11
--operador de incremento, el valor entero aumenta 1operador de decremento, el valor entero disminuye-- Se obtendrá 9

1A

示例
#include <iostream>
using namespace std;
    int a, b;
    a = 7;
    b = 2;
    // :operadores aritméticos
    imprimir la división de a entre b + cout << "a + b) << endl;
    // imprimir la suma de a y b
    imprimir la división de a entre b - cout << "a - b) << endl;
    // imprimir la diferencia entre a y b
    imprimir la división de a entre b * cout << "a * b) << endl;
    // imprimir el producto de a y b
    imprimir la división de a entre b / cout << "a / b) << endl;
    // imprimir el módulo (resto) de a y b
    cout << "a % b = " << (a % b) << endl;
    return 0;
}

Resultados de salida

a + b = 9
a - b = 5
a * b = 14
a / b = 3
a % b = 1

Aquí, el operador+,- y * calculan la suma, resta y multiplicación respectivamente, como esperamos.

/ operador de división

Nota: las operaciones en nuestro programa (a / b).  / El operador es el operador de división.

A partir del ejemplo anterior, podemos ver que si dividimos un entero por otro entero, obtendremos el cociente. Pero, si el divisor o el dividendo es un número de coma flotante, obtendremos el resultado en forma decimal.

En C++En,
7/2 = 3
7.0 / 2 = 3.5
7 / 2.0 = 3.5
7.0 / 2.0 = 3.5

operador % módulo

El operador % de módulo calcula el residuo. Cuando a (9) dividido por b(4) con un resto de1.

Nota:La operación % solo se puede usar con enteros.

operadores de autoincremento y autodecremento

C ++También se proporcionan operadores de incremento y decremento:++y--.

++aumentar el valor del operando1.

-- reducir el valor del operando1.

Por ejemplo,

int num = 5;
// num aumenta1
++num;

Aquí, el valor de num desde el valor inicial5aumentar a6.

2:operadores de incremento y decremento

// el funcionamiento de los operadores de incremento y decremento
示例
#include <iostream>
using namespace std;
    int a = 10, b = 100, result_a, result_b;
    // sumar a1y almacenamos el resultado en result_a
    result_a = ++a;
    cout << "result_a = " << result_a << endl;
    // reducir b1y almacenamos el resultado en result_b
    result_b = --b;
    cout << "result_b = " << result_b << endl;
    return 0;
}

Resultados de salida

result_a = 11
result_b = 99

En el programa anterior, utilizamos++y-operador como prefijo. También podemos usar estos operadores como sufijo.

Estos operadores tienen diferencias ligeras al actuar como prefijo y como sufijo.

2. C ++ operador de asignación

En C ++En, el operador de asignación se utiliza para asignar valores a las variables. Por ejemplo,

// }}5Asignación a a
a = 5;

Aquí, le dimos un valor a la variable a5.

Operadores
EjemploEquivale a
=a = b;a = b;
+=a += b;a = a + b;
-=a -= b;a = a - b;
*=a *= b;a = a * b;
/=a /= b;a = a / b;
%=a %= b;a = a % b;

2:Operadores de asignación

示例
#include <iostream>
using namespace std;
    int a, b, temp;
    // Asignación de a2
    a = 2;
    //Asignación de b7
    b = 7;
   // Asigna el valor de a a temp
   temp = a;    // temp será 2
   cout << "temp = " << temp << endl;
    // Asigna la suma de a y b a a
    a += b;       // a = a +b
    cout << "a = " << a << endl;
    return 0;
}

Resultados de salida

temp = 2
a = 9

3. C ++Operadores de relación

Los operadores de relación se utilizan para verificar la relación entre dos operandos. Por ejemplo,

// Verifica si a es mayor que b
a > b;

Aquí, > es un operador de relación. Verifica si a es mayor que b.

Si esta relación estrue,entonces devuelve1;Si esta relación esfalse,entonces devuelve0.

Supongamos que el valor de la variable A es 5,el valor de la variable B es 11, entonces:

OperadoresDescripciónEjemplo
==Verifica si los valores de los operandos son iguales, si es así, la condición es verdadera.(A == B) no es verdadero.
!=Verifica si los valores de los operandos son iguales, si no lo son, la condición es verdadera.(A != B) es verdadero.
>Verifica si el valor del operando izquierdo es mayor que el valor del operando derecho, si es así, la condición es verdadera.(A > B) no es verdadero.
<Verifica si el valor del operando izquierdo es menor que el valor del operando derecho, si es así, la condición es verdadera.(A < B) es verdadero.
>=Verifica si el valor del operando izquierdo es mayor o igual que el valor del operando derecho, si es así, la condición es verdadera.(A >= B) no es verdadero.
<=Verifica si el valor del operando izquierdo es menor o igual que el valor del operando derecho, si es así, la condición es verdadera.(A <= B) es verdadero.

4:Operadores de relación

示例
#include <iostream>
using namespace std;
    int a, b;
    a = 3;
    b = 5;
    bool result;
    result = (a == b);   // false
    cout << "3 == 5 El resultado de la calculación es " << result << endl;
    result = (a != b);  // true
    cout << "3 != 5 El resultado de la calculación es " << result << endl;
    result = a > b;   // false
    cout << "3 > 5 El resultado de la calculación es " << result << endl;
    result = a < b;   // true
    cout << "3 < 5 El resultado de la calculación es " << result << endl;
    result = a >= b;  // false
    cout << "3 >= 5 El resultado de la calculación es " << result << endl;
    result = a <= b;  // true
    cout << "3 <= 5 El resultado de la calculación es " << result << endl;
    return 0;
}

Resultados de salida

3 == 5 El resultado de la calculación es 0
3 != 5 El resultado de la calculación es 1
3 > 5 El resultado de la calculación es 0
3 < 5 El resultado de la calculación es 1
3 >= 5 El resultado de la calculación es 0
3 <= 5 El resultado de la calculación es 1

Nota:Los operadores de relación se utilizan para decisiones y bucles.

4. C ++Operadores lógicos

Los operadores lógicos se utilizan para verificar si una expresión estrueofalse。Si la expresión estrue,entonces devuelve1;Si la expresión esfalse,entonces devuelve0.

p> Supongamos que el valor de la variable A es 1,si el valor de la variable B es 0, entonces:

OperadoresDescripciónEjemplo
&&Operador lógico y. Si ambos operandos son distinto de cero, la condición es verdadera.(A && B) es falso.
||Operador lógico o. Si cualquier uno de los operandos es distinto de cero, la condición es verdadera.(A || B) es verdadero.
!llamado operador lógico no. Se utiliza para revertir el estado lógico de los operandos. Si la condición es verdadera, el operador lógico no lo convertirá en falso.!(A && B) es verdadero.

En C ++en donde los operadores lógicos se utilizan comúnmente para la toma de decisiones. Para entender mejor los operadores lógicos, veamos los siguientes ejemplos,

Supongamos que,
a = 5
b = 8
Supongamos que,
(a > 3) && (b > 5) el resultado de la computación es true
(a > 3) && (b < 5) el resultado de la computación es false
(a > 3) || (b > 5) el resultado de la computación es true
(a > 3) || (b < 5) el resultado de la computación es true
(a < 3) || (b < 5) el resultado de la computación es false
!(a == 3) el resultado de la computación es true
!(a > 3) el resultado de la computación es false

5:operadores lógicos

示例
#include <iostream>
using namespace std;
    bool result;
    result = (3 != 5) && (3 < 5);     // true
    cout << "(3 != 5) && (3 < 5) el resultado de la computación es " << result << endl;
    result = (3 == 5) && (3 < 5);    // false
    cout << "(3 == 5) && (3 < 5) el resultado de la computación es " << result << endl;
    result = (3 == 5) && (3 > 5);    // false
    cout << "(3 == 5) && (3 > 5) el resultado de la computación es " << result << endl;
    result = (3 != 5) || (3 < 5);    // true
    cout << "(3 != 5) || (3 < 5) el resultado de la computación es " << result << endl;
    result = (3 != 5) || (3 > 5);    // true
    cout << "(3 != 5) || (3 > 5) el resultado de la computación es " << result << endl;
    result = (3 == 5) || (3 > 5);    // false
    cout << "(3 == 5) || (3 > 5) el resultado de la computación es " << result << endl;
    result = !(5 == 2);    // true
    cout << "!(5 == 2) el resultado de la computación es " << result << endl;
    result = !(5 == 5);    // false
    cout << "!(5 == 5) el resultado de la computación es " << result << endl;
    return 0;
}

Resultados de salida

(3 != 5) && (3 < 5) el resultado de la computación es 1
(3 == 5) && (3 < 5) el resultado de la computación es 0
(3 == 5) && (3 > 5) el resultado de la computación es 0
(3 != 5) || (3 < 5) el resultado de la computación es 1
(3 != 5) || (3 > 5) el resultado de la computación es 1
(3 == 5) || (3 < 5) el resultado de la computación es 0
!(5 == 2) el resultado de la computación es 1
!(5 == 5) el resultado de la computación es 0

Uso de programas de operadores lógicos

  • (3!= 5) && (3 <5) tiene un valor de1, porque los dos operandos(3!= 5) y (3 <5) son1(true).

  • (3 == 5) && (3 <5) tiene un valor de 0, porque el operando(3 == 5) tiene un valor de 0(false).

  • (3 == 5) && (3> 5) tienen un valor de 0, porque los dos operandos(3 == 5) y (3> 5) todos son 0(false).

  • (3!= 5) || (3 <5) tiene un valor de1, porque los dos operandos(3!= 5) y (3 <5) son1(true).

  • (3!= 5) || (3> 5) tiene un valor de1, porque el operando(3!= 5) es1(true).

  • (3 == 5) || (3> 5) tienen un valor de 0, porque los dos operandos(3 == 5) y (3> 5) todos son 0(false).

  • !(5 == 2) tiene un valor de1, porque el operando(5 == 2) tiene un valor de 0(false).

  • !(5 == 5) tiene un valor de 0, porque el operando(5 == 5) es1(true).

5. C ++Operadores de bits

En C ++donde los operadores de bits se utilizan para realizar operaciones en bits individuales. Solo se pueden usar con tipos de datos char e int.

En la tabla se muestra C++ Operadores de bits admitidos. Supongamos que el valor de la variable A es 60, el valor de la variable B es 13, entonces:

OperadoresDescripciónEjemplo
&Si un bit existe en ambos operandos, el operador AND binario copia un bit al resultado.(A & B) se convertirá en 12, es decir, 0000 1100
|Si un bit existe en cualquier operando, el operador OR binario copia un bit al resultado.(A | B) se convertirá en 61es decir 0011 1101
^Si un bit existe en uno de los operandos pero no en ambos, el operador de XOR binario copia un bit al resultado.(A ^ B) se convertirá en 49es decir 0011 0001
~El operador de complemento a dos es un operador unario, que tiene el efecto de "inversión", es decir, 0 se convierte en1,1en 0.(~A) se convertirá en -61es decir 1100 0011es una forma de representación de complemento a dos de un número binario con signo.
<<Operador de desplazamiento a la izquierda en binario. El valor del operando izquierdo se desplaza a la izquierda en el número de位数 especificado por el operando derecho.A << 2 Se obtendrá 240, es decir 1111 0000
>>Operador de desplazamiento a la derecha en binario. El valor del operando izquierdo se desplaza a la derecha en el número de位数 especificado por el operando derecho.A >> 2 Se obtendrá 15, es decir, 0000 1111

Para obtener más información, visiteC ++Operadores de bits.

Además de los operadores discutidos anteriormente, también hay otros operadores como sizeof, ?, ., & que no se pueden clasificar uniformemente en un tipo o otro. Aprenderemos más sobre estos operadores en futuros tutoriales.

Operadoresmisceláneos

La siguiente tabla enumera los operadores C++ Otros operadores importantes que admite.

OperadoresDescripción
sizeofOperador sizeofDevuelve el tamaño de la variable. Por ejemplo, sizeof(a) devolverá 4, donde a es un entero.
Condition ? X : YOperador condicional.Si Condition es verdadero ? entonces el valor es X : de lo contrario el valor es Y.
,Operador de comaEjecutarán sucesivamente una serie de operaciones. El valor de toda la expresión de coma es el valor de la última expresión de la lista separada por comas.
.(punto) y  ->(flecha)Operador de miembroUsado para referirse a los miembros de las clases, estructuras y uniones.
CastOperador de conversión forzadaConvertir un tipo de datos en otro. Por ejemplo, int(2.2(000) 2.
&Operador de puntero & Devuelve la dirección de la variable. Por ejemplo, &a; devolverá la dirección real de la variable.
*Operador de puntero * Apunta a una variable. Por ejemplo:*var; apuntará a la variable var.

C++ de operadores

La prioridad de los operadores determina la combinación de elementos en la expresión. Esto afecta a cómo se calcula una expresión. Algunos operadores tienen una prioridad más alta que otros, por ejemplo, los operadores de multiplicación y división tienen una prioridad más alta que los operadores de suma y resta.

Por ejemplo x = 7 + 3 * 2Aquí, x se asigna el valor 13, en lugar de 20, porque el operador * Tiene un valor + Un nivel de prioridad más alto, por lo que se calcula primero la multiplicación 3*2Luego se suma 7.

La siguiente tabla enumera los operadores según su prioridad de operadores, desde la más alta a la más baja, los operadores de prioridad más alta aparecen en la parte superior de la tabla, y los operadores de prioridad más baja aparecen en la parte inferior. En la expresión, los operadores de prioridad más alta se calculan primero.

Categoría Operadores Asociatividad 
Prefijo () [] -> .  ++   - -  De izquierda a derecha 
Unario +  -   ! ~  ++  - -   (type)*  & sizeof De derecha a izquierda 
Multiplicación y división *  /  % De izquierda a derecha 
Suma y resta +  - De izquierda a derecha 
Desplazamiento << >> De izquierda a derecha 
Relacional < <= > >= De izquierda a derecha 
Igual == != De izquierda a derecha 
AND bit a bit & De izquierda a derecha 
XOR bit a bit ^ De izquierda a derecha 
OR bit a bit | De izquierda a derecha 
AND lógico && De izquierda a derecha 
OR lógico || De izquierda a derecha 
Condicional ?: De derecha a izquierda 
Asignación =  +=  -=  *=  /= %=>>= <<= &= ^= |= De derecha a izquierda 
Coma , De izquierda a derecha 

Ejemplo: Prioridad de operadores

示例
#include <iostream>
using namespace std;
  // int main() {17 * 6
  int num1 = 5 - 17 * 6;
  // Primero calcule1Expresión equivalente
  int num2 = 5 - (17 * 6);
  // Forzar al compilador a calcular5 - 17valor
  int num3 =5 - 17) * 6;
  cout << "num1 =1 << endl;
  cout << "num2 =2 << endl;
  cout << "num3 =3 << endl;
  return 0;
}

Resultados de salida:

num1 = -97
num2 = -97
num3 = -72

Nota: Debido a que C ++Hay muchos operadores con múltiples prioridades, por lo que se recomienda encarecidamente que usemos paréntesis para que el código sea más legible.

Recomendaciones relacionadas:C++ Prioridad y asociatividad de operadores