よく、条件によって、代入する値を変更する場合があります。
if(bFlag) nValue=16; else nValue=165;
上のプログラムを三項演算子を使って書き直すと、次のようになります。
nValue = bFlag ? 16 : 165;
すっきりしましたね(ちょっと見にくいかもしれませんが)。
三項演算子の構文は次のような感じです。
左辺 = 条件式 ? 条件式が真の場合に代入する値 : 条件式が偽の場合に代入する値 ;
代入の時で無くても、値を必要とする場合ならばどこでも使用出来ます。
printf("%d\n", bFlag ? 16 : 126);
ついでに、関数も呼べます。
bFlag ? printf("真") : printf("偽");
文字列にも使えます(数値と同じですね)。
printf("%s\n", bFlag ? "真" : "偽");
結構使い道はあると思います。