Opérateurs conditionnels
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 :
- Les deux opérandes sont de type arithmétique.
E2
etE3
sont soumises aux conversions arithmétiques habituelles qui déterminent le type résultant. - Les deux opérandes sont de type struct ou union compatible. Le type résultant est le type union ou structure de
E2
etE3
. - Les deux opérandes sont de type void. Le type résultant est void.
- 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.
- 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.
- 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.