若有int a,b;则语句:printf( %d ,(a=2)&&(b=-2);的输出结果

详细步骤,谢谢
2024-11-15 12:07:45
推荐回答(5个)
回答1:

赋值语句的返回值就等于右值(也就是所赋的值)

所以对于(a=2)&&(b=-2)来说,
赋值语句a=2的返回值为2,
赋值语句b=-2的返回值为-2,
2&&(-2)为真(也就是1),
所以(a=2)&&(b=-2)的值为1

所以printf( %d ,(a=2)&&(b=-2);的输出结果为1

回答2:

首先说明应该是“%d”,少了个括号。
(a=2)&&(b=-2)是个逻辑运算,先将a赋值2,b赋值-2,因为都不等于0,所以该逻辑运算的结果是真,在C语言中,真的数值是1。所以最后答案为1。

回答3:

值为1
中间是个逻辑运算符
a=2为赋值语句且没有赋0,值为真1
b=-2也是赋值语句,并且也没赋0,值也为真1
所以1&&1==1,最后输出为1

回答4:

其实就是&&号的右边是0,答案也是1
这是由于&&运算符的短路特性引起的
在逻辑运算中 0代表假,非零代表真

回答5:

C语言中,非0整数都为真,所以负整数当然也是真的,peace。