Operadores en C

En este tutorial, aprenderá sobre diferentes operadores en la programación en C con la ayuda de ejemplos.

Un operador es un símbolo que opera sobre un valor o una variable. Por ejemplo: + es un operador para realizar sumas.

C tiene una amplia gama de operadores para realizar diversas operaciones.

C Operadores aritméticos

Un operador aritmético realiza operaciones matemáticas como suma, resta, multiplicación, división, etc. en valores numéricos (constantes y variables).

Operador Significado de operador
+ suma o unario más
- resta o menos unario
* multiplicación
/ división
% resto después de la división (división de módulo)

Ejemplo 1: operadores aritméticos

 // Working of arithmetic operators #include int main() ( int a = 9,b = 4, c; c = a+b; printf("a+b = %d ",c); c = a-b; printf("a-b = %d ",c); c = a*b; printf("a*b = %d ",c); c = a/b; printf("a/b = %d ",c); c = a%b; printf("Remainder when a divided by b = %d ",c); return 0; )

Salida

 a + b = 13 ab = 5 a * b = 36 a / b = 2 Resto cuando a dividido por b = 1

La operadores +, -y *computa la suma, resta y multiplicación, respectivamente, como se podría haber esperado.

En cálculo normal, 9/4 = 2.25. Sin embargo, la salida está 2en el programa.

Es porque ambas variables ayb son números enteros. Por tanto, la salida también es un número entero. El compilador ignora el término después del punto decimal y muestra respuesta en 2lugar de 2.25.

El operador de módulo %calcula el resto. Cuando a=9se divide por b=4, el resto es 1. El %operador solo se puede utilizar con números enteros.

Supongamos a = 5.0, b = 2.0, c = 5y d = 2. Luego, en programación C,

 // Cualquiera de los operandos es un número de punto flotante a / b = 2.5 a / d = 2.5 c / b = 2.5 // Ambos operandos son números enteros c / d = 2

C Operadores de incremento y decremento

La programación en C tiene dos operadores que aumentan ++y disminuyen --para cambiar el valor de un operando (constante o variable) en 1.

El incremento ++aumenta el valor en 1, mientras que la disminución lo --reduce en 1. Estos dos operadores son operadores unarios, lo que significa que solo operan en un solo operando.

Ejemplo 2: Operadores de incremento y decremento

 // Working of increment and decrement operators #include int main() ( int a = 10, b = 100; float c = 10.5, d = 100.5; printf("++a = %d ", ++a); printf("--b = %d ", --b); printf("++c = %f ", ++c); printf("--d = %f ", --d); return 0; )

Salida

 ++ a = 11 --b = 99 ++ c = 11.500000 --d = 99.500000

Aquí, los operadores ++y --se utilizan como prefijos. Estos dos operadores también se pueden usar como sufijos como a++y a--. Visite esta página para obtener más información sobre cómo funcionan los operadores de incremento y decremento cuando se utilizan como sufijo.

Operadores de asignación C

Se utiliza un operador de asignación para asignar un valor a una variable. El operador de asignación más común es=

Operador Ejemplo Igual que
= a = b a = b
+ = a + = b a = a + b
- = a - = b a = ab
* = a * = b a = a * b
/ = a / = b a = a / b
% = a% = b a = a% b

Ejemplo 3: Operadores de asignación

 // Working of assignment operators #include int main() ( int a = 5, c; c = a; // c is 5 printf("c = %d", c); c += a; // c is 10 printf("c = %d", c); c -= a; // c is 5 printf("c = %d", c); c *= a; // c is 25 printf("c = %d", c); c /= a; // c is 5 printf("c = %d", c); c %= a; // c = 0 printf("c = %d", c); return 0; )

Salida

 c = 5 c = 10 c = 5 c = 25 c = 5 c = 0

C Operadores relacionales

Un operador relacional comprueba la relación entre dos operandos. Si la relación es verdadera, devuelve 1; si la relación es falsa, devuelve el valor 0.

Los operadores relacionales se utilizan en la toma de decisiones y en los bucles.

Operador Significado de operador Ejemplo
== Igual a 5 == 3 se evalúa a 0
> Mas grande que 5> 3 se evalúa a 1
< Menos que 5 < 3 se evalúa a 0
! = No igual a 5 != 3 se evalúa a 1
> = Mayor qué o igual a 5>= 3 se evalúa a 1
<= Menos que o igual a 5 <= 3 se evalúa a 0

Ejemplo 4: Operadores relacionales

 // Working of relational operators #include int main() ( int a = 5, b = 5, c = 10; printf("%d == %d is %d ", a, b, a == b); printf("%d == %d is %d ", a, c, a == c); printf("%d> %d is %d ", a, b, a> b); printf("%d> %d is %d ", a, c, a> c); printf("%d < %d is %d ", a, b, a < b); printf("%d < %d is %d ", a, c, a = %d is %d ", a, b, a>= b); printf("%d>= %d is %d ", a, c, a>= c); printf("%d <= %d is %d ", a, b, a <= b); printf("%d <= %d is %d ", a, c, a <= c); return 0; )

Salida

 5 == 5 es 1 5 == 10 es 0 5> 5 es 0 5> 10 es 0 5 <5 es 0 5 = 5 es 1 5> = 10 es 0 5 <= 5 es 1 5 <= 10 es 1 

C Operadores lógicos

Una expresión que contiene un operador lógico devuelve 0 o 1 dependiendo de si la expresión resulta verdadera o falsa. Los operadores lógicos se utilizan comúnmente en la toma de decisiones en la programación C.

Operador Sentido Ejemplo
&& AND lógico. Verdadero solo si todos los operandos son verdaderos Si c = 5 y d = 2, la expresión ((c==5) && (d>5))es igual a 0.
|| OR lógico. Verdadero solo si alguno de los operandos es verdadero Si c = 5 y d = 2, la expresión ((c==5) || (d>5))es igual a 1.
! NO lógico. Verdadero solo si el operando es 0 If c = 5 then, expression !(c==5) equals to 0.

Example 5: Logical Operators

 // Working of logical operators #include int main() ( int a = 5, b = 5, c = 10, result; result = (a == b) && (c> b); printf("(a == b) && (c> b) is %d ", result); result = (a == b) && (c < b); printf("(a == b) && (c < b) is %d ", result); result = (a == b) || (c < b); printf("(a == b) || (c < b) is %d ", result); result = (a != b) || (c < b); printf("(a != b) || (c < b) is %d ", result); result = !(a != b); printf("!(a != b) is %d ", result); result = !(a == b); printf("!(a == b) is %d ", result); return 0; ) 

Output

 (a == b) && (c> b) is 1 (a == b) && (c < b) is 0 (a == b) || (c < b) is 1 (a != b) || (c < b) is 0 !(a != b) is 1 !(a == b) is 0 

Explanation of logical operator program

  • (a == b) && (c> 5) evaluates to 1 because both operands (a == b) and (c> b) is 1 (true).
  • (a == b) && (c < b) evaluates to 0 because operand (c < b) is 0 (false).
  • (a == b) || (c < b) evaluates to 1 because (a = b) is 1 (true).
  • (a != b) || (c < b) evaluates to 0 because both operand (a != b) and (c < b) are 0 (false).
  • !(a != b) evaluates to 1 because operand (a != b) is 0 (false). Hence, !(a != b) is 1 (true).
  • !(a == b) evaluates to 0 because (a == b) is 1 (true). Hence, !(a == b) is 0 (false).

C Bitwise Operators

During computation, mathematical operations like: addition, subtraction, multiplication, division, etc are converted to bit-level which makes processing faster and saves power.

Bitwise operators are used in C programming to perform bit-level operations.

Operators Meaning of operators
& Bitwise AND
| Bitwise OR
^ Bitwise exclusive OR
~ Bitwise complement
<< Shift left
>> Shift right

Visit bitwise operator in C to learn more.

Other Operators

Comma Operator

Comma operators are used to link related expressions together. For example:

 int a, c = 5, d;

The sizeof operator

The sizeof is a unary operator that returns the size of data (constants, variables, array, structure, etc).

Example 6: sizeof Operator

 #include int main() ( int a; float b; double c; char d; printf("Size of int=%lu bytes",sizeof(a)); printf("Size of float=%lu bytes",sizeof(b)); printf("Size of double=%lu bytes",sizeof(c)); printf("Size of char=%lu byte",sizeof(d)); return 0; )

Output

 Size of int = 4 bytes Size of float = 4 bytes Size of double = 8 bytes Size of char = 1 byte 

Otros operadores, como el operador ternario ?:, el operador de referencia, el operador de &desreferencia *y el operador de selección de miembros ->, se analizarán en tutoriales posteriores.

Articulos interesantes...