我目前正在学习C语言,并试图完成K&;R练习2-1.(编写一个程序来确定char、short、int和long变量的范围
#include <stdio.h>
#include <limits.h>
#include <float.h>
int main() {
printf("Unsigned Variable Ranges\n");
printf("Unsigned char: %d %d\n", 0, UCHAR_MAX);
printf("Unsigned short: %d %d\n", 0, USHRT_MAX);
printf("Unsigned int: %d %d\n", 0, UINT_MAX);
printf("Unsigned long: %d %d\n", 0, ULONG_MAX);
}
我的思考过程是使用极限中的符号常量.h和浮动.h打印程序中的最小值和最大值.char和short值打印正确,但int和long值打印为-1.终端显示:
Unsigned Variable Ranges
Unsigned char: 0 255
Unsigned short: 0 65535
Unsigned int: 0 -1
Unsigned long: 0 -1
这是我的错误还是编译器/Visual Studio的错误?