float minTime[7]={FLT_MAX};
for(int i=0;i<7;i++)
cout << "Min: " << minTime[i] << endl;
为什么我得到以下输出:
Min: 3.40282e+038
Min: 0
Min: 0
Min: 0
...
不应该都和第一个有相同的值吗?如此处所指:C++ Notes
最佳答案
您的链接页面显示“...未指定的元素设置为零。”
这是正确的;因此,只有数组中的第一个元素被指定为 FLT_MAX
,其余元素被初始化为零。如果你想将它们全部设置为相同的值,你可以使用 for 循环,或者更简洁:
std::fill_n(minTime, 7, FLT_MAX);
作为警告,C++ 是一种硬语言。这意味着很多人都有很多错误信息,而且在互联网上特别容易找到。你最好从book on our list中学习. (是的,那些不在我们名单上的是因为它们也包含错误信息!)
关于C++数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5291008/