这道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呢 这个我不明白
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