1
float minTime[7]={FLT_MAX};
    for(int i=0;i<7;i++)
        cout << "Min: " << minTime[i] << endl;

Why do I get in the following output :

Min: 3.40282e+038
Min: 0
Min: 0
Min: 0
...

Shoudln't all have the same value as the first one? As it is refered here: C++ Notes

doubter
  • 61
  • 6
  • 1
    From your link: Missing initialization values use zero If an explicit array size is specified, but an shorter initiliazation list is specified, the unspecified elements are set to zero. – Erik Mar 13 '11 at 17:21

3 Answers3

4

Your linked page says "...the unspecified elements are set to zero."

This is correct; as such, only the first element in your array was specified to be FLT_MAX, the rest are initialized to zero. If you want to set them all to the same value you can use a for-loop, or more succinctly:

std::fill_n(minTime, 7, FLT_MAX);

As a warning, C++ is a hard language. This means lots of people have lots of misinformation, and this is especially easy to find on the internet. You'd be better off learning from a book on our list. (And yes, the ones not on our list are so because they too contain misinformation!)

Community
  • 1
  • 1
GManNickG
  • 494,350
  • 52
  • 494
  • 543
2

Shoudln't all have the same value as the first one?

Nopes! When an array is partially initialized the non-initialized array elements are value initialized (zero-initialized in this case).

C++03 Section 8.5.1/7

If there are fewer initializers in the list than there are members in the aggregate, then each member not explicitly initialized shall be value-initialized (8.5).
[Example:

struct S { int a; char* b; int c; };
S ss = { 1, "asdf" };

initializes ss.a with 1, ss.b with "asdf", and ss.c with the value of an expression of the form int(), that is, 0. ]

Prasoon Saurav
  • 91,295
  • 49
  • 239
  • 345
1

No, only first value is initialized with the supplied value, other values are value initialized as per standard.

Asha
  • 11,002
  • 6
  • 44
  • 66
  • As per standard, they are value-initialized, not default initialized. Not that there is any difference for POD types, including floats – Armen Tsirunyan Mar 13 '11 at 17:35