0になったり他の値になったりするのは、偶々だね。

12.6.5のサンプル
struct C {
C(){}
A a;
const B b;
int i;
int j = 5;
};
// initializes members as follows:
// OK: calls A::A()
// error: B has no default constructor
// OK: i has indeterminate value
// OK: j has the value 5

規格書読めない初心者は発言しないように。