有关于数据类型的问题望高手指点
#include<stdio.h>
void main()
{
unsigned int a=-1;
printf("%d",a);
}
为什么输出还是-1? unsigned类型里面不是不能存储负数吗?而且watch里面显示a=65536这是为什么?这个问题一直搞不明白
[解决办法]
用printf("%ud",a);看看
楼主的printf存在类型隐式转换即unsigned int->int
另外unsigned int在winxp中应是32位占四个字节watch显示是a=4294967295
[解决办法]
隱式類型轉換了。%d說明輸出int