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