表达式print(“17%d,(a=2)&&(b=-2));”的输出结果

表达式print(“17%d,(a=2)&&(b=-2));”的输出结果

代码编译错误,哪来的输出

如果题目愿意是定义两个int型变量a和b后,然后求它们上面表达式的值,则其结果是:171.

因为(a=2)其结果是2,(b=-2)的结果是-2,然后2&&-2,其结果是1,因为不等于0的数其对应的真假值为1,所以最后结果是:171.

测试但代码如下:

#include <stdio.h>

int main(void){
    
    int a,b;
    
    printf("17%d",(a=2)&&(b=-2));
    
    return 0;
} 

img