#include<stdio.h>
main()
{
inta,b,c=298;a=c/100%9;
b=(-1)&&(1);
printf("%d,%d\n",a,b);
}
为什么b=1而不是负一呢?
我知道0为假,非零为真
&&表示与,&&表示两侧的表达式同时为真则返回1,有一个不为真就返回0
这里b的值要么是0,要么是1。
(-1)&&(1),非0就为真,所以这里相当于两个同时为真,取与,则返回1
即使你输入(-1)&&(-1)也是真,返回1,因为-1非0,-100、100都是一样都是非0
只有当其中之一为0,如(-1)&&(0)或者(0)&&(1)时,返回0
b=(-1)&&(1); -1 为真,(-1) && (1) ===> 真 && 真 得到还是 真 == 1,逻辑值。