Qu’est-ce que l’associativité des opérateurs et pourquoi est-ce important?

Qu’est-ce que l’associativité (pour un opérateur) et pourquoi est-ce important?

Mise à jour: associativité des opérateurs

    Pour les opérateurs, l’associativité signifie que lorsque le même opérateur apparaît dans une ligne, alors quel opérateur intervient nous appliquons en premier. Dans ce qui suit, laissez Q être l’opérateur

     a Q b Q c 

    Si Q rest associatif, alors il est évalué comme

     (a Q b) Q c 

    Et si c’est associatif correct, alors il évalue comme

     a Q (b Q c) 

    C’est important, car cela change le sens d’une expression. Considérons l’opérateur de division avec une arithmétique entière, qui rest associatif

     4 / 2 / 3 <=> (4 / 2) / 3 <=> 2 / 3 = 0 

    Si c’était bien associatif, cela donnerait une expression indéfinie, puisque vous diviseriez par zéro

     4 / 2 / 3 <=> 4 / (2 / 3) <=> 4 / 0 = undefined 

    Il existe trois types d’associativité:

    La propriété associative en mathématiques

    Ordre des opérations dans les langages de programmation

    Associativité dans les caches de processeur.

    La propriété associative en mathématiques est une propriété des opérateurs tels que addition (+). Cette propriété vous permet de réorganiser les parenthèses sans changer la valeur d’une instruction, à savoir:

     (a + b) + c = a + (b + c) 

    Dans les langages de programmation, l’associativité (ou la fixité) d’un opérateur est une propriété qui détermine comment les opérateurs de même priorité sont regroupés en l’ absence de parenthèses. c’est-à-dire dans quel ordre chaque opérateur est évalué. Cela peut différer entre les langages de programmation.

    Dans les caches de CPU, l’associativité est une méthode d’optimisation des performances.

    c’est l’ordre d’évaluation pour les opérateurs de même priorité. La commande GAUCHE À DROITE ou DROITE À GAUCHE est importante. Pour

     3 - 2 - 1 

    si c’est GAUCHE à DROITE, alors c’est

     (3 - 2) - 1 

    et est 0. S’il est à droite à gauche, alors il est

     3 - (2 - 1) 

    et c’est 2. Dans la plupart des langues, on dit que l’opérateur moins a une associativité LEFT TO RIGHT.

    Si vous faites référence à “l’associativité d’opérateur”, c’est la manière dont un langage détermine comment les opérateurs de même priorité sont regroupés en l’absence de parenthèses.

    Par exemple, les opérateurs + et – dans les langages basés sur C ont la même priorité. Lorsque vous écrivez une expression qui les utilise toutes les deux (sans parenthèses), le compilateur doit déterminer dans quel ordre les évaluer.

    Si vous écrivez 12 – 5 + 3, les évaluations possibles comprennent:

    1. (12 – 5) + 3 = 10
    2. 12 – (5 + 3) = 4

    Selon l’ordre dans lequel vous évaluez l’expression, vous pouvez obtenir des résultats différents. Dans les langages basés sur C, + et – ont laissé une associativité, ce qui signifie que l’expression ci-dessus serait considérée comme le premier cas.

    Toutes les langues ont des règles fortement définies pour la préséance et l’associativité. Vous pouvez en apprendre plus sur les règles pour C # ici. Les concepts généraux de l’ associativité et de la priorité des opérateurs sont bien couverts sur wikipedia.

    Je suppose que vous voulez dire l’associativité des opérateurs …

    C’est l’ordre de liaison des opérandes à un opérateur. Fondamentalement:

    a – b + c

    pourrait être évalué comme (en supposant – et + ont la même priorité):

    ((a – b) + c) ou,
    (a – (b + c))

    Si les opérateurs sont laissés associatifs (liés immédiatement à l’opérande gauche), ils seront évalués en premier. Si elles sont bien associatives, elles seront évaluées comme la seconde.

    Simple!! Associatif gauche signifie que nous évaluons notre expression de gauche à droite.

    Right Associative signifie que nous évaluons notre expression de droite à gauche.

    Nous soaps *, / et% ont la même priorité, mais, selon l’associativité, la réponse peut changer.

    Par exemple: j’ai exp: 4 * 8/2% 5

    Associatif gauche: (4 * 8) / 2% 5 ==> (32/2)% 5 ==> 16% 5 ==> 1

    Droit associatif: 4 * 8 / (2% 5) ==> 4 * (8/0) ==> Comportement non défini

    J’espère que cela aiderait. . .

    Si vous voulez parler d’associativité opérateur:

    Il définit la façon dont les expressions sont analysées. Cela donne un standard, donc chaque expression est analysée de la même manière.

    C’est surtout important pour les opérations qui ont le même précédent, quand il pourrait y avoir des effets secondaires.

    La plupart des exemples précédents ont utilisé des constantes. Si les arguments sont des appels de fonction, l’ordre dans lequel les appels sont effectués peut être déterminé par les règles d’association, en fonction de votre compilateur. Et si ces fonctions ont des effets secondaires ..

    Nous soaps tous que la préséance est importante tout comme l’associativité dans l’interprétation du sens d’une expression. Pour une introduction très simple, essayez Power of Operators .