可能重复:
Unsigned long with negative value
Assigning negative numbers to an unsigned int?无符号和符号整数
#include<stdio.h>
int main()
{
struct a
{
unsigned int i:3;
int c:3;
}s;
s.i=5;
s.c=5;
printf("s.i=%d\n",s.i);
printf("s.c=%u\n",s.c);
unsigned int x = -1;
printf(" x = %d", x);
return 0;
}
此输出:
s.i=5
s.c=4294967293
x=-1
我不清楚“x”和“sc”的输出(sc可以只存储3位数的数据,但是在输出中它给出了非常大的值)。“x”被声明为无符号的,所以存储在x中的位是1111111 .......并且x的输出应该是一个较大的值而不是-1。第一个printf()语句按预期给出结果 我正在使用devC++编译器。
你为什么不缩进你的代码? –
所有的参数都以'int'的形式传递给'printf',由您来设置合适的格式说明符。 –