C++数组初始化

标签 c++ arrays

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/

相关文章:

c++ - 将 std::bitset 分成两半?

java - 通过递归分而治之获得数组中的最大数字

javascript - 声明包含对象的对象数组

c++ - 无序集的编译问题

c++ - 打开/dev/ttyUSB0 返回 "Bad file descriptor"

java - 从嵌套数组中提取值

php - 按优先级排序数组

Java - 是否可以对数组进行子类化?还有更多关于 Java 数组的问题

c++ - 传递右值引用函数参数时如何从原始类型变量复制

android - 使用 ndk clang 3.4/3.5 编译 __thread 不走运