i've been familiar ternary operator quite time now, , have worked in few differnet languages. understanding of operator this:
condition ? expr1 : expr2 however, in c++, following code legal:
int = 45; (i > 0) ? i-- : 1; aren't you, in effect, writing 1; or i - 1;how complete statement? understand intention of code decrement i if it's greater 0, would've thought code generate compiler error being expression, not full statement. expected code this:
int = 45; = (i > 0) ? - 1 : i;
this called expression statement. expression evaluated , value discarded.
even valid:
42; although nothing. side effects (like i--, assignment, etc) in expression have effects.
in fact, many statements use expression statements: assignments, function calls, etc:
a = 42; foo();
Comments
Post a Comment