I ? (true expression) : (false expression)[/I]
Its a shortcut for:
[I]if (condition) (true expression); else (false expression);[/I]
char Result = (x==2)?"correct":"incorrect";
is the same as...
Result = "correct";
Result = "incorrect";
Its sometimes easier to read, and useful when you need to perform last minute conditional expressions in "tight spaces", such as within other more complex expressions. When the compiler encounters either of these methods, it converts it to the exact same assembly code.
Think of the [?:] shortcut in the same family as [++] and [+=] shortcuts. It just allows you to do more in a complex expression.