‘b = !a’ a가 –2를 저장하고 있으므로 참(1)이 되고, 이를 부정(!)했으므로 b는 거짓(0)이 된다.
‘a&&b’에서 ‘1&&0’이 되어 거짓(0)이 되고 ‘a||b’에서 1||0 이 되어 참(1)이 된다. 참고로, ‘&& ’는 논리곱 연산자이다.
하지만 ‘if(b && C(10))’에서 b가 거짓(0)이므로 if문을 더 이상 수행하지 않고 빠져나오므로 ‘C(10)’ 함수는 호출되지 않는다.
그리고 ‘if(b & C(20))’에서 ‘if(0000000000000000 & C(20))’는 &(비트 곱) 연산을 하기위해 ‘C(20)’ 함수를 호출하여 ‘20’을 출력하고 돌아와 if 연산을 수행하지만 거짓으로 ‘printf("B ")’ 문장은 수행되지 않는다.