Partager via


Opérateur de Expression conditionnelle

C contient un opérateur conditionnel ternaire : l'opérateur d'expression conditionnelle (? :).      

Syntaxe

  • expression conditionnelle:
    logique-OU-expression

    De expression conditionnelledeNuméro de téléphone : d'expression de**?** d'expression

La logique-OU-expression doit avoir l'complète, le flottante, ou le type pointeur.elle est évaluée en termes de son équivalence à 0.un point de séquence suit la logique-OU- expression.l'évaluation des opérandes continue comme suit :

  • si la logique-OU- expression n'est pas égale à 0, l' expression est évaluée.Le résultat d'évaluer l'expression est fourni par l'expressionnon terminale.(Cela signifie que l'expression est évaluée uniquement si la logique-OU-expression est vraie.)

  • Si la logique-OU-expression égal à 0, l'expression conditionnelle est évaluée.Le résultat de l'expression est la valeur del'expression conditionnelle.(Cela signifie que l'expression conditionnelle est évaluée uniquement si la logique-OU-expression est false.)

Notez que l'expression ou l'expression conditionnelle est évaluée, mais pas les deux.

Le type du résultat d'une opération conditionnelle dépend du type de l'opérande d'expression ou d'expression conditionnelle , comme suit :

  • Si l'expression ou l'expression conditionnelle a le type intégral ou flottantes (leurs types peuvent être différents), l'opérateur effectue les conversions arithmétiques classiques.Le type du résultat est le type des opérandes après la conversion.

  • Si l'expression et l'expression conditionnelle ont la même structure, union, ou type pointeur, le type du résultat est la même structure, union, ou type pointeur.

  • si les deux opérandes ont le type void, le résultat a le type void.

  • Si l'un ou l'autre opérande est un pointeur vers un objet de tout type, et l'autre opérande est un pointeur vers void, le pointeur vers l'objet est converti en un pointeur vers void et le résultat est un pointeur vers void.

  • Si l'expression ou l'expression conditionnelle est un pointeur et l'autre opérande est une expression constante avec la valeur 0, le type du résultat est le type pointeur.

Dans la comparaison de type pour les pointeurs, tout type de qualificateurs (const ou volatile) dans le type auquel les points de pointeur ne sont pas significatifs, mais le type de résultat hérite des qualificateurs des deux composants du conditionnel.

Exemples

Les utilisations de les exemples suivants de l'opérateur conditionnel :

j = ( i < 0 ) ? ( -i ) : ( i );

Cet exemple affecte la valeur absolue d' i à j.Si i est inférieure à 0, -i est assigné à j.Si i est supérieure ou égale à 0, i est assigné à j.

void f1( void );
void f2( void );
int x;
int y;
    .
    .
    .
( x == y ) ? ( f1() ) : ( f2() );

Dans cet exemple, deux fonctions, f1 et f2, et les deux variables, x et y, sont déclarés.Plus loin dans le programme, si les deux variables ont la même valeur, la fonction f1 est appelée.Sinon, f2 est appelé.

Voir aussi

Référence

Opérateur conditionnel : ? :