Precedencia del operador en C

Precedencia del operador en C

Cuando evaluamos cualquier expresión que involucre el uso de diferentes operadores en él, estamos obligados a resolver la expresión para calcular sus valores basados ​​en la precedencia del operador. La precedencia es el término para asignar una prioridad o peso a algún valor/término, por lo que la precedencia del operador asigna la prioridad a los operadores en una expresión. Para entender esto, asumir cualquier expresión, e.gramo., 8*3+2, y la respuesta a esta expresión podría dar lugar a dos valores diferentes, "26" y "40", respectivamente. Sin embargo, elegiremos el resultado de la expresión como "26", ya que el operador "*" de multiplicación tiene más precedencia del operador en comparación con el operador de adición "+", por lo tanto, la expresión primero calculará la multiplicación entre 8 y 3 y el El resultado se agregará luego con el 2. Muchos operadores en el lenguaje de programación C tienen más prioridad sobre los otros operadores.

Procedimiento

La precedencia del operador es un concepto importante en los métodos numéricos para resolver una expresión. Necesitamos esta precedencia para resolver la expresión. Si no seguimos ninguna regla, no sabremos qué operador resolver primero, y podemos obtener una respuesta diferente cada vez. Para evitar esta confusión, hemos estandarizado la prioridad a los operadores que dicen qué operador debemos evaluar primero en cualquier expresión. Resolveremos varios ejemplos con diferentes operadores en este artículo.

Ejemplo 01

En el ejemplo, ejecutaremos un programa en el Compilador Visual Studio C que calculará la expresión numérica que involucra ciertos operadores numéricos. Si tomamos una expresión de ejemplo como:

6*5-4+2

Sin la precedencia del operador, tenemos dos formas de resolver esta expresión. Una forma es resolver esta expresión evaluando a los operadores de izquierda a derecha. Si lo hacemos, obtendremos la respuesta "28". Otra forma de resolver la expresión es que si comenzamos a evaluar los operadores de derecha a izquierda, calcularemos la respuesta para esta expresión como "26". Las respuestas que tenemos son diferentes entre sí, y también son sospechosas. ¿Cómo elegiríamos qué respuesta es correcta si estas respuestas no están mal?? Resuelvamos este ejemplo en el compilador C desarrollando un programa para esta operación. El Visual Studio C tiene precedencia de operador predeterminada para tales expresiones.

Para implementar esto, necesitamos crear un proyecto y luego declarar la función principal como "main ()" con el tipo de retorno "entero". En la función principal, inicialice un entero con un nombre de variable "a" y asigne la expresión numérica anterior. Luego muestre el resultado para esta expresión en la variable llamando al método printf (), que tomará el especificador de formato para la variable entera "A" como "%I" y también el nombre de la variable "A" en sus argumentos. Aquí está el programa más corto que puede ejecutar:

#incluir
int main ()

int a = 6 * 5 - 4 + 2;
printf ("%i", a);
regresar 0;

La salida de la expresión "A" será calculada por este programa como el "28".

Ejemplo 02

Para saber más sobre la precedencia del operador, resolveremos un ejemplo para la expresión que involucra a los operadores aritméticos y a los operadores de soporte y aprenderemos cómo el lenguaje de programación C da precedencia a múltiples tipos de operadores. La expresión en la que vamos a trabajar en este ejemplo es la siguiente:

((3*8) +2) -2

La expresión involucra a los operadores de paréntesis y al operador aritmético "+". Para ver cómo el compilador para C resolverá esta expresión, creará un nuevo proyecto y declarará una función llamada "principal" con Integer "INT" como su tipo de retorno. En esta función, inicialice una variable "x" con un entero de tipo de datos. A esta variable, asigne la expresión numérica, e.gramo., "Int x = ((3*8) +2) -2", y muestre la variable en la salida.

#incluir
int main ()

int x = ((3 * 8) + 2) - 2;
printf ("%i", x);
regresar 0;

La salida para la variable "x" declarada en el ejemplo anterior sería el valor numérico "24". Tenemos esta salida desde que el lenguaje de programación C precede al operador de paréntesis en comparación con el operador aritmético "+". Entonces, el primer operador evaluado en la expresión fue el operador de paréntesis, que involucró la multiplicación de los dos valores, 3 y 8, que dio el valor 24. Luego, el compilador nuevamente resolvió el segundo operador de paréntesis, que agregó el valor resultante del primer paréntesis con el valor numérico 2. La respuesta al segundo paréntesis es "26". Luego vino el giro para la resta y "2" se restó de 26, lo que resultó en la respuesta de la expresión como 24.

Ejemplo 03

Para el tercer ejemplo, resolveremos una expresión que involucra a los operadores que son los mismos o tienen la misma precedencia. Para tal caso, implementemos un ejemplo en el que declararemos las tres variables X, Y y Z, todas teniendo el mismo tipo de datos que un entero con los valores inicializados como 30, 20 y 10. Queremos comparar los tres valores como x> y> z. Si la condición (x> y> z) se hace verdadera, la salida imprimirá "correcta". De lo contrario, "falso". Este ejemplo se implementa de la siguiente manera:

#incluir
int main ()

int x = 30;
int y = 20;
int z = 10;
if (x> y> z)
printf ("correcto");
demás
printf ("falso");
regresar 0;

Del código anterior, podemos ver que la expresión solo tiene operadores de comparación. En el programa C, cuando el mismo tipo de operador existe en la expresión, simplemente calculamos la expresión evaluando el operador de izquierda a derecha. Esa es la razón por la cual la salida ha mostrado el "correcto" para la expresión. Si nos movemos de izquierda a derecha y comparamos el (x> y)> z, entonces esta sería una declaración correcta para los valores x = 30, y = 20 = y z = 10.

Conclusión

La precedencia del operador es la regla fundamental de asignar prioridades a los operadores mientras se trata de expresiones numéricas en los programas escritos en C. Este artículo destaca la precedencia de los operadores sobre los mismos y diferentes operadores para fines de evaluación. Hemos implementado tres ejemplos diferentes con tres casos diferentes que involucran la precedencia del operador.