Printf(“%d”)

What’s the output result of the following code snippet?

char foo() 
{
    unsigned int a = 6;
    int b = -20;
    char c;
    printf("%d  ", a + b);
    (a + b > 6) ? ( c = 1 ) : ( c = 0 );
    return c;
}
 
main() 
{
    char b = foo();
    printf("%d",b);
    getch();
}

unsigned int + int = unsigned int, so a + b = 4294967282
printf("%d"), print as signed, so -14( = 4294967282 as unsigned)

printf(“%u”), print as unsigned int

原文地址:https://www.cnblogs.com/graphics/p/1715865.html