¿El operador condicional? : es el único operador ternario en C.
? : Sintaxis del operador condicional
expression1 ? expression2 : expression3
Expression1 se evalúa primero. Si su valor es verdadero, se evalúa expression2 y se ignora expression3. Si expresión1 se evalúa como falsa, expresión3 se evalúa y expresión2 se ignora. El resultado será un valor de expresión2 o expresión3 dependiendo de cuál de ellos se evalúe como Verdadero.
El operador condicional se asocia de derecha a izquierda.
Example
/* Find max(a, b): */
max = ( a > b ) ? a : b;
/* Convert small letter to capital: */
/* (no parentheses are actually necessary) */
c = ( c >= 'a' && c <= 'z' ) ? ( c - 32 ) : c;
Reglas del operador condicional
- expression1 debe ser una expresión escalar; expression2 y expression3 deben obedecer una de las siguientes reglas.
- Ambas expresiones deben ser de tipo aritmético.
- expression2 y expression3 están sujetos a las conversiones aritméticas habituales, lo que determina el tipo resultante.
- > Ambas expresiones deben ser de tipo nulo. El tipo resultante es nulo.