Différences entre l'opérateur conditionnel C et C (?)
L'opérateur conditionnel (?:) fournit un moyen concis d'évaluer des expressions basées sur conditions. Cependant, il présente des différences subtiles de fonctionnalité entre C et C .
Affectation de la valeur :
En C , l'opérateur conditionnel peut renvoyer une lvalue, permettant des expressions telles que :
(true ? a : b) = 1;
Cela attribue la valeur 1 à a ou à b en fonction de la véracité de vrai. En C, cela n'est pas autorisé, et il faut utiliser une instruction if/else ou travailler directement avec des références :
*(true ? &a : &b) = 1;
Précédence des opérateurs :
En C , les opérateurs ?: et = ont une priorité égale et se regroupent de droite à gauche. Cela signifie que ce qui suit est valide :
(true ? a = 1 : b = 2);
Cependant, en C, cela générera une erreur sans parenthèses autour de la dernière expression :
(true ? a = 1 : (b = 2));
Par conséquent, lors de l'utilisation de l'opérateur conditionnel dans les environnements mixtes C et C, il est crucial d'être conscient de ces différences nuancées pour éviter des comportements inattendus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!