C LanguageLos operadores


Introducción

Un operador en un lenguaje de programación es un símbolo que le dice al compilador o intérprete que realice una operación matemática, relacional o lógica específica y produzca un resultado final.

C tiene muchos operadores poderosos. Muchos operadores de C son operadores binarios, lo que significa que tienen dos operandos. Por ejemplo, en a / b , / es un operador binario que acepta dos operandos ( a , b ). ¿Hay algunos operadores unarios que toman un operando (por ejemplo: ~ , ++ ) y solo un operador ternario ? : .

Sintaxis

  • operador expr1
  • operador expr2
  • expr1 operador expr2
  • expr1? expr2: expr3

Observaciones

Los operadores tienen una aridad , una precedencia y una asociatividad .

  • Arity indica el número de operandos. En C, existen tres aridades de operadores diferentes:

    • Unario (1 operando)
    • Binario (2 operandos)
    • Ternario (3 operandos)
  • La precedencia indica qué operadores "enlazan" primero a sus operandos. Es decir, qué operador tiene prioridad para operar en sus operandos. Por ejemplo, el lenguaje C obedece a la convención de que la multiplicación y la división tienen prioridad sobre la suma y la resta:

    a * b + c
    

    Da el mismo resultado que

    (a * b) + c
    

    Si esto no es lo que se quería, se puede forzar la precedencia utilizando paréntesis, porque tienen la precedencia más alta de todos los operadores.

    a * (b + c)
    

    Esta nueva expresión producirá un resultado que difiere de las dos expresiones anteriores.

    El lenguaje C tiene muchos niveles de precedencia; A continuación se muestra una tabla de todos los operadores, en orden descendente de prioridad.

    Tabla de precedencia

    Los operadores Asociatividad
    () [] -> . de izquierda a derecha
    ! ~ ++ -- + - * (desreferencia) (type) sizeof De derecha a izquierda
    * (multiplicación) / % de izquierda a derecha
    + - de izquierda a derecha
    << >> de izquierda a derecha
    < <= > >= de izquierda a derecha
    == != de izquierda a derecha
    & de izquierda a derecha
    ^ de izquierda a derecha
    | de izquierda a derecha
    && de izquierda a derecha
    || de izquierda a derecha
    ?: De derecha a izquierda
    = += -= *= /= %= &= ^= |= <<= >>= De derecha a izquierda
    , de izquierda a derecha
  • La asociatividad indica cómo se vinculan los operadores de igual precedencia de manera predeterminada, y hay dos tipos: de izquierda a derecha y de derecha a izquierda . Un ejemplo de enlace de izquierda a derecha es el operador de resta ( - ). La expresion

    a - b - c - d
    

    tiene tres restas de precedencia idéntica, pero da el mismo resultado que

    ((a - b) - c) - d
    

    porque el más a la izquierda - se une primero a sus dos operandos.

    Un ejemplo de asociatividad de derecha a izquierda son los operadores de referencia * y post-incremento ++ . Ambos tienen la misma prioridad, por lo que si se usan en una expresión como

    * ptr ++
    

    , esto es equivalente a

    * (ptr ++)
    

    porque el operador unario más a la derecha ( ++ ) se une primero a su único operando.

Los operadores Ejemplos relacionados