What is the difference between the & and && operators?
It depends on the type of the arguments...
For integer arguments, the single ampersand ("&")is the "bit-wise AND" operator. The double ampersand ("&&") is not defined for anything but two boolean arguments.
For all other argument types and combinations, a compile-time error should occur.