if (C)

Esta palabra reservada se usa ejecutar o no tramos de segmentos de código , junto con la palabra else se consiguen bifurcaciones.

la sentencia if se usa de la siguente forma:

la sentencia if puede venir acompañada con la palabra reservada "else"
se usa de la siguente forma:

Se pueden omitir las llaves { } si solo hay una sentencia.

Se consiente la anidación en cualquiera de estos bloques.

En el if-else no se ejecutan nunca los dos bloques.

?:

Es una sentencia if else (muy compacta aunque un poco difícil de leer hasta que te familiarices )

 a = exp ? exp_v : exp_f 

A puede tomar dos valores que dependen de exp , si exp es verdadera entonces a vale exp_v y si es falsa exp_f.