Node:The question mark operator, Next:The switch statement, Previous:Nested if statements, Up:Decisions
?...:... operatorThe ?...:... operator is a sort of shorthand
if...else... statement. Because it is a little
cryptic, it is not often used, but the basic form is as follows:
(condition) ? expression1 : expression2;
The program evaluates condition. If it is true (not zero), then expression1 is returned; otherwise, expression2 is returned.
For example, in the short program below, the line
bas = (foo > bar) ? foo : bar; assigns foo to bas
if foo is greater than bar; otherwise, it assigns
bar to bas.
#include <stdio.h>
int main()
{
int foo = 10;
int bar = 50;
int bas;
bas = (foo > bar) ? foo : bar;
printf("bas = %d\n\n", bas);
return 0;
}
The program will print bas = 50 as a result.