C LanguageLes opérateurs


Introduction

Un opérateur dans un langage de programmation est un symbole qui indique au compilateur ou à l'interprète d'exécuter une opération mathématique, relationnelle ou logique spécifique et de produire un résultat final.

C a beaucoup d'opérateurs puissants. De nombreux opérateurs C sont des opérateurs binaires, ce qui signifie qu'ils ont deux opérandes. Par exemple, dans a / b , / est un opérateur binaire qui accepte deux opérandes ( a , b ). Il y a des opérateurs unaires qui prennent un opérande (par exemple: ~ , ++ ), et un seul opérateur ternaire ? : .

Syntaxe

  • opérateur expr1
  • opérateur expr2
  • opérateur expr1 expr2
  • expr1? expr2: expr3

Remarques

Les opérateurs ont une arité , une priorité et une associativité .

  • Arity indique le nombre d'opérandes. En C, il existe trois opérateurs différents:

    • Unaire (1 opérande)
    • Binaire (2 opérandes)
    • Ternaire (3 opérandes)
  • La priorité indique quels opérateurs "se lient" en premier à leurs opérandes. C'est-à-dire quel opérateur a la priorité d'opérer sur ses opérandes. Par exemple, le langage C obéit à la convention selon laquelle la multiplication et la division ont priorité sur l'addition et la soustraction:

    a * b + c
    

    Donne le même résultat que

    (a * b) + c
    

    Si ce n'est pas ce qui était souhaité, la priorité peut être forcée à l'aide de parenthèses, car elles ont la plus haute priorité de tous les opérateurs.

    a * (b + c)
    

    Cette nouvelle expression produira un résultat différent des deux expressions précédentes.

    Le langage C a de nombreux niveaux de priorité; Un tableau est donné ci-dessous de tous les opérateurs, par ordre décroissant de priorité.

    Tableau de préséance

    Les opérateurs Associativité
    () [] -> . de gauche à droite
    ! ~ ++ -- + - * (déréférencement) (type) sizeof de droite à gauche
    * (multiplication) / % de gauche à droite
    + - de gauche à droite
    << >> de gauche à droite
    < <= > >= de gauche à droite
    == != de gauche à droite
    & de gauche à droite
    ^ de gauche à droite
    | de gauche à droite
    && de gauche à droite
    || de gauche à droite
    ?: de droite à gauche
    = += -= *= /= %= &= ^= |= <<= >>= de droite à gauche
    , de gauche à droite
  • L'associativité indique comment les opérateurs d'égale priorité sont liés par défaut et il en existe deux types: de gauche à droite et de droite à gauche . Un exemple de liaison de gauche à droite est l'opérateur de soustraction ( - ). L'expression

    a - b - c - d
    

    a trois soustractions de priorité identique, mais donne le même résultat que

    ((a - b) - c) - d
    

    parce que le plus à gauche - se lie d'abord à ses deux opérandes.

    Un exemple d'associativité de droite à gauche sont les opérateurs dereference * et post-incrément ++ . Les deux ont la même priorité, donc s'ils sont utilisés dans une expression telle que

    * ptr ++
    

    , cela équivaut à

    * (ptr ++)
    

    parce que l'opérateur unaire le plus à droite ( ++ ) se lie d'abord à son seul opérande.

Les opérateurs Exemples Liés