Значение инициализировать агрегат
Пробовал стандарт 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.]
Да.
Компилятор заполняет инициализацию нулями, когда их недостаточно для каждого объявленного размера.