Opérateurs conditionnels

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Opérateurs binaires - Index

Syntaxe

expression-OU-logique ? expression : expression-conditionnelle

Remarques

L'opérateur conditionnel ?: est un opérateur ternaire.

Dans l'expression E1 ? E2 : E3, E1 est d'abord évaluée. Si sa valeur est à true, E2 est alors évaluée et E3 est ignorée. Si E1 est évaluée à false, E3 est alors évaluée et E2 est ignorée.

Le résultat de E1 ? E2 : E3 sera la valeur de E2 ou E3 en fonction de l'évaluation.

E1 doit être une expression scalaire. E2 et E3 doivent obéir à l'une des règles suivantes :

  1. Les deux opérandes sont de type arithmétique. E2 et E3 sont soumises aux conversions arithmétiques habituelles qui déterminent le type résultant.
  2. Les deux opérandes sont de type struct ou union compatible. Le type résultant est le type union ou structure de E2 et E3.
  3. Les deux opérandes sont de type void. Le type résultant est void.
  4. Les deux opérandes sont de type pointeur sur une version qualifiée ou non de types compatibles. Le type résultant est un pointeur sur un type qualifié par tous les qualificateurs des types pointés par les deux opérandes.
  5. Un opérande est un pointeur et l'autre est une constante pointeur NULL. Le type résultant est un pointeur sur un type qualifié par tous les qualificateurs des types pointés par les deux opérandes.
  6. Un opérande est un pointeur sur un objet ou un type incomplet et l'autre est un pointeur sur une version qualifiée ou non de void. Le type résultant est celui de l'opérande qui n'est pas un pointeur sur void.