Isaac Morland wrote: > I hope you'll forgive a noob question. Why does the "After" > initialization for the boolean array have {0} rather than {false}?
I think using a value other than {0} potentially gives the incorrect impression that the value is used for *all* elements of the array/structure, whereas it is only used for the first element. "The remainder of the aggregate shall be initialized implicitly the same as objects that have static storage duration." The rest of the elements are being initialized to zero as interpreted by their types (so NULL for pointers, 0.0 for floats, even though neither of them need be bitwise zero). Setting the first item to 0 matches that exactly. Using {false} may encourage the unwary to try bool foo[2] = {true}; which will not set all elements to true.