GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial de programación de Linux C Parte 11 - Operadores aritméticos, relacionales y lógicos

Hasta ahora, en esta serie de tutoriales de programación en C, hemos discutido cosas básicas como funciones, matrices, variables y más. Continuando con el flujo, en este tutorial, discutiremos otro concepto básico:los operadores.

Como principiante en el lenguaje de programación C, trabajará principalmente con tres tipos de operadores:aritméticos, relacionales y lógicos. Comencemos con los operadores airthmetic.

Hay esencialmente 5 tipos de operadores aritméticos en C: +, -, *, / y %. Mientras que +, - y / se explican por sí mismos, * se refiere a la multiplicación y % es el operador de módulo. En caso de que no lo sepa, el operador % le da un resto. Por ejemplo:

a % b

Aquí, el operador % se asegura de obtener el valor restante cuando 'a' se divide por 'b'. Esto significa que el resto puede ser cero en los casos en que 'a' es completamente divisible por 'b'. Aquí hay un pequeño ejemplo que debería brindarle una mayor claridad sobre estos operadores:

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0;
c = a + b;
printf("%d\n", c);

c = a - b;
printf("%d\n", c);

c = a*b;
printf("%d\n", c);

c = a/b;
printf("%d\n", c);

c = a%b;
printf("%d\n", c);

return 0;
}

El siguiente es el resultado de este programa:

13 
7
30
3
1

Vale la pena mencionar aquí que cuando se trata de flotantes y dobles, no debe usar el operador %. Además, los operadores + y - que hemos usado aquí son operadores binarios, lo que significa que requieren dos operandos (por ejemplo, 'a' y 'b' en nuestro caso). También hay operadores + y - unarios, que funcionan en un solo operando.

Aquí hay un ejemplo del operador - unario en acción:

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0;
c = -a;
printf("c = %d", c);
}

Aquí está el resultado:

c = -10

Entre todos los operadores discutidos hasta ahora, en cuanto a la precedencia, + y - unarios comparten el primer lugar, seguidos de *, / y %, que a su vez son seguidos por + y - binarios.

Tenga en cuenta que también hay algunos otros operadores unarios, algunos de los cuales ya hemos discutido indirectamente en nuestros tutoriales anteriores. Esta es la lista:++, --, !, &y sizeof.

Ya hemos discutido los operadores de incremento y decremento ++ y -- (tanto en forma de prefijo como de posfijo). ! NO es un operador que niega cualquier cosa sobre la que se aplica. Por ejemplo, si el resultado de una condición es verdadero, aplicando ! lo convertirá en falso, y viceversa.

Continuando, &se usa para obtener la dirección de una variable (como ya se vio en el caso de los argumentos de la función scanf()), mientras que el operador sizeof le da el tamaño del operando que se le pasa. El siguiente fragmento de código debería darle una mejor idea acerca de estos operadores:

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0, d =1, e=0, f=9;

printf("a = 10 and a++ = %d\n", a++);

printf("b = 3 and ++b = %d\n", ++b);

printf("c = 0 and c-- = %d\n", c--);

printf("d = 1 and --d = %d\n", --d);

if(!e)
{
printf("\n e is zero or FALSE and its address is: %u\n", &e);
printf("\n sizeof 'f' is: %u\n", sizeof(f));

}


return 0;

}

Y aquí está el resultado:

a = 10 and a++ = 10 
b = 3 and ++b = 4
c = 0 and c-- = 0
d = 1 and --d = 0

e is zero or FALSE and its address is: 856178696

sizeof 'f' is: 4

Continuando, echemos un vistazo rápido a los operadores relacionales y lógicos. Los siguientes son operadores relacionales:

> >= < <= == !=

Así es como se pueden usar:

a > b
a >= b
a < b
a <= b
a == b
a != b

En el orden en que aparecen arriba, estos operadores verifican si 'a' es mayor, mayor o igual que, menor que, menor o igual que, igual y diferente de 'b'. Los primeros cuatro operadores tienen la misma precedencia, que es mayor que los dos últimos. Tenga en cuenta que los dos últimos operadores también se denominan operadores de igualdad.

Y finalmente, llegando a los operadores lógicos. Hay esencialmente dos:&&y ||. Ambos operadores se utilizan principalmente para evaluar condiciones o expresiones. Por ejemplo:

if (cond1 && cond2)
{

}

if (expr1 && expr2)
{

}

if (cond1 || cond2)
{

}

if (expr1 || expr2)
{

}

En el caso de las dos primeras sentencias if, la ejecución solo entrará en el bloque si ambas condiciones son verdaderas. Mientras que en el caso de las dos últimas sentencias if, la ejecución entrará en el bloque si alguna de las condiciones de la expresión es verdadera.

Tenga en cuenta que los operadores relacionales tienen una precedencia menor que los operadores aritméticos, y que la de los operadores lógicos es menor que la de los operadores relacionales y de igualdad. Entre ellos, &&tiene mayor precedencia que ||.

Conclusión

En este tutorial, discutimos los conceptos básicos de los operadores, cómo funcionan y su precedencia. Se sugiere que cree algunos programas en C de muestra para probar los conceptos discutidos aquí. En caso de cualquier duda o consulta, háganoslo saber en los comentarios a continuación.


Linux
  1. Tutorial de Programación C 4 - Variables y Memoria

  2. Tutorial de Programación en C Parte 3 - Conceptos básicos de variables

  3. Tutorial de programación de Linux C Parte 12 - Operadores de asignación y expresiones condicionales

  4. Tutorial de programación de Linux C Parte 15 - Números negativos y complemento 2s

  5. Tutorial de programación de Linux C Parte 18:funciones recursivas

5 consejos y trucos interesantes sobre la línea de comandos en Linux – Parte 1

Cómo comparar y fusionar archivos de texto en Linux (parte 2)

Cómo instalar y usar KompoZer en Linux - Tutorial

Cómo instalar y usar Kerkythea en Linux - Tutorial

Copia de seguridad y restauración de instantáneas LVM en Linux

Discusión sobre Windows, Linux y cPanel VPS – Parte II