Sorry John, (a && b) is not an Lvalue and therefore can never be the address of the result of an assignment. Try reading "The C Programming Language". An asignment must store the result somewhere, so the left side of the assignment must supply an address; ( a && b) is logical expression, True or Not True, not an address.