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

详细步骤,谢谢
2024年11月15日 12:07
有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。