#include<stdio.h>
int main()
{
unsigned short i = -1;
unsigned int d = -1;
printf("%d\n", i);
printf("%d ", d);
return 0;
}
输出结果是 65535 -1 ; 有些不明白的是 网上说 d 的结果是-1,是因为%d是输出有符号的,%d将d强制转换为int型,那为什么 i 的值输出时也用到了%d而不是输出-1,输出结果是65535;我知道short数据类型时-1的补码是1111 1111 1111 1111(0xfffff),输出时%d不应该输出有符号吗?