From § 8.5
If no initializer is specified for an object, the object is
default-initialized; if no initialization is performed, an object with
automatic or dynamic storage duration has indeterminate value. [ Note:
objects with static or thread storage duration are zero-initialized,
see 3.6.2. —end note ]
Update for future references: Further the meaning of default initialized is defined as
To default-initialize an object of type T means:
— if T is a
(possibly cv-qualified) class type (Clause 9), the default constructor
for T is called (and the initialization is ill-formed if T has no
accessible default constructor);
— if T is an array type, each
element is default-initialized;
— otherwise, no initialization is
performed.
If a program calls for the default initialization of
an object of a const-qualified type T, T shall be a class type with a
user-provided default constructor.
Further it varies from value initialized referring this:-
To value-initialize an object of type T means:
— if T is a
(possibly cv-qualified) class type (Clause 9) with a user-provided
constructor (12.1), then the default constructor for T is called (and
the initialization is ill-formed if T has no accessible default
constructor);
— if T is a (possibly cv-qualified) non-union class
type without a user-provided constructor, then the object is
zero-initialized and, if T’s implicitly-declared default constructor
is non-trivial, that constructor is called.
— if T is an array
type, then each element is value-initialized;
— otherwise, the
object is zero-initialized.