unsigned int问题

2021-06-26  本文已影响0人  李永开
int main(int argc, const char * argv[]) {

    unsigned int a = 10;
    
    if (a - 20 > 0) {
        printf("大于0  %u\n",a-20);
        printf("大于0  %d\n",a-20);
    } else {
        printf("小于0\n");
    }
    
    return 0;
}

大于0  4294967286
大于0  -10
Program ended with exit code: 0

输入结果为 > 0,因为unsigned与非unsigned处理,都是unsigned。
所以用u%输出会是一个很大的值。
用d%输出就是-10

上一篇 下一篇

猜你喜欢

热点阅读