我尝试了以下内容:
#include <stdio.h>
int main(void) {
signed int a = 5;
unsigned int b = -5;
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
我得到了:
5
-5
所以我不明白为什么signed
和unsigned
不起作用,如果我收到错误?
答案 0 :(得分:3)
您必须使用正确的格式说明符才能使用printf函数获得正确的结果。写
printf("%d\n", a);
printf("%u\n", b);
该函数只是根据格式说明符解释数据的内部表示。
答案 1 :(得分:1)
使用 unsigned int 的格式spcifier,%u
现在编译并运行代码,您将看到差异
#include <stdio.h>
int main(void) {
signed int a = 5;
unsigned int b = -5;
printf("%d\n", a);
printf("%u\n", b);
return 0;
}