可能重複:
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',由您來設置合適的格式說明符。 –