读书人

请教

发布时间: 2012-02-10 21:27:41 作者: rapoo

请问:
#include "stdio.h "
void main()
{
unsigned int k;
k= 0xffffffff;
printf( "%d ",k);

}

为何输出-1?
#include "stdio.h "
void main()
{
int k;
k= 0xffffffff;
printf( "%d ",k);

}
这个才是-1啊。

[解决办法]
第一个k在内存中当然是表示0xffffffff,而不是-1,不过你printf格式输出的时候是按照有符号数来解释的,要输出无符号数应该用%u而不是%d。

读书人网 >C语言

热点推荐