|| and "or" (as well as && and "and") have nothing to
do with numeric vs strings. They both are simple
tests, the only difference is in their priority: the
"words" ("and" and "or") are of a lower priority
than the ones a C programmer would know (&& and ||).
'or' is safer to use in some cases because it almost
guarantees that everything to the left of it binds
tighter (gets evaluated as a single expresion) and
*then* gets tested. It's really on a case by case basis. A
good and consistent use of parenthesis can often prevent
making such decisions, as it removes the the precedence
ambiguity.
|