unsigned int 加上 int 原理

#include<stdio.h>
#include<stdlib.h>
int main()
{
    unsigned int a = 6;
    int b = -20;
    (a + b) > 6 ? printf("hehe\n") : printf("hoho\n");
    system("pause");
}

看教程的一个思考问题,这道题的输出结果应该是

hehe

具体过程值我们可以添加一个变量来检查:

    unsigned int c;
    int d;
发现"a+b"的无符号值是4294967282,有符号是-14,而默认的a+b的结果为无符号的值,所以输出的是成立的结果输出


 
 

猜你喜欢

转载自blog.csdn.net/baidu_41931307/article/details/80306173