unsigned u=65535;printf("%u,%o,%x,%d\n",u,u,u,u);运行结果疑问求解答
#include<stdio.h>void main()
{
unsigned u=65535;
printf("%u,%o,%x,%d\n",u,u,u,u);
}
运行结果是65535,177777,ffff,65535
最后一个 u 输出结果为什么是 65535 而不是 -1 呢。%d 不是有符号整型吗?
#include <stdio.h> #include <limits.h> int main( void ) { unsigned u = UINT_MAX; printf( "%u, %o, %x, %d\n", u, u, u, u ); return 0; }一种可能的输出如下(希望你能明白为什么我要强调“一种可能的”)
4294967295, 37777777777, ffffffff, -1