回 帖 发 新 帖 刷新版面

主题:类型

#include <stdio.h>

int main (void)
{
    unsigned int a = 6;
    int b = -20;
    (a + b)? printf ("1") : printf ("2");   怎么是1呢答案? 怎解释?谢谢啦!
    return 0;
}

回复列表 (共2个回复)

沙发

你那是怎么想的呢?

板凳

因为“a+b”的值为-14,不等于0的,在逻辑关系中就属于“真”,所以针对于你的逻辑表达式(a + b)? printf ("1") : printf ("2");   而言,结果就是printf("1");....
简而言之,表达式的值为“0”就为“非”,不为“0”就为“真”..............

我来回复

您尚未登录,请登录后再回复。点此登录或注册