Пробовал стандарт C ++, но не смог понять. Это эквивалентно?
double x[2] = {0.0, 0.0};
и
double x[2] = {};
Как насчет этих?
struct A { double x[2]; }; A a = {0.0, 0.0};
A a = {};
Спасибо!
Стандарт C ++ гласит (8.5.1):
Если в списке меньше инициализаторов, чем элементов в агрегате, то каждый элемент, не инициализированный явно, должен быть инициализирован значением
и инициализация значения double должна установить его в 0.0.
0.0
Так что да!В C ++ они эквивалентны.
[ У меня не было времени проверить стандарт C99. ]
Да, они есть.
Компилятор заполняет инициализацию нулями, когда недостаточно для заданного размера.