这道C语言得多少呢 帮我看下

来源:百度知道 编辑:UC知道 时间:2024/09/24 22:22:22
int a,b,c=123;
a=c%100/9;
b=(-1)&&1;
printf("%d,%d",a,b);

a=2这个我明白 但为什么b=1呢 这个我不明白

因为-1和1都不为0,即不为假,即真&&真此时为1!
明白了否?

becase
&& 字符的两边必须是非零,它的表达式值就为1 ,如果其中一方为零则表达式值为零

如 0&&232 表达式值为0

-3&&0 表达式值为0

-3 &&(-5) 表达式值为1

&&表达式值 不是0就是1,没有其它值

C规定 非0的值都为真
-1 和 1 都是非 0

b=(-1)&&1=1;

&&是与运算,即b的值是(-1为真)与1为真的判断,因(-1)与1都不等于0,都为真。所以b=1

恩,其它不为0的都是ture