main()
{
unsigned a;
int b=-1;
a=b;
printf("%u",a);
}
上面这个程序为什么在VC中输出是4294967295,而在TC中是输出65535??
main()
{
unsigned a;
int b=-1;
a=b;
printf("%u",a);
}
上面这个程序为什么在VC中输出是4294967295,而在TC中是输出65535??
VC采用的是32位环境,TC用的是16位环境
a为无符号整形,那么如果a=-1的a的取值将会是当前编译环境的整形的最大值
32位环境下,整形为4个字节(32位),无符号整形的最大值为:2的32次方减1为4294967295
16位环境下,整形为2个字节(16位),无符号整形的最大值为:2的16次方减1为65535