我被分配了一个作业,在问题中有这样一行:
- min:一个int值,用于跟踪到目前为止看到的最小值。最初min应该是支持的最大整数值(不要硬编码)这个值)。
我把unsigned
写在int minimum;
之前所以它是正的。当我打印未初始化的minimum
变量的值时,我得到3435973836
。这是"支持的最大整数值"吗?我的老师给出的输出显示它是2147483647
。我是否应该做任何额外的事情,或者这个值在每台计算机上都是随机的?
可以存储在整数中的最大值取决于类型以及您的系统,因此它可能与您的教师系统中的最大可能值不同。
在您的系统上获得数值类型的最大可能值的正确方法是使用std::numeric_limits
。例如:
#include <iostream>
#include <limits>
int main() {
std::cout << "The largest value an unsigned int can hold is "
<< std::numeric_limits<unsigned int>::max()
<< " and the smallest value is "
<< std::numeric_limits<unsigned int>::min()
<< std::endl;
return 0;
}
输出:
unsigned int型可保存的最大值是4294967295,最小值是0
现场演示
请注意,从未初始化的变量中读取是未定义行为,这总是错误的,不应该依赖。