Значение инициализировать агрегат

Пробовал стандарт C++, но не смог понять. Это эквивалентно?

double x[2] = {0.0, 0.0};

а также

double x[2] = {};

Как на счет этих?

struct A {
    double x[2];
};

A a = {0.0, 0.0};

а также

A a = {};

Спасибо!

2 ответа

Решение

Стандарт C++ говорит (8.5.1):

Если в списке меньше инициализаторов, чем элементов в агрегате, то каждый элемент, не инициализированный явно, должен быть инициализирован значением

и значение инициализации двойного должно установить его в 0.0,

Так да! В C++ они эквивалентны.

[У меня не было времени, чтобы проверить стандарт C99.]

Да.

Компилятор заполняет инициализацию нулями, когда их недостаточно для каждого объявленного размера.

Другие вопросы по тегам