long arr[100] = {0};
От: ch.  
Дата: 24.07.09 13:07
Оценка: -1
C++

Подскажите, сабж действительно инициализирует ВЕСЬ массив нулями? Вроде как по синтаксису должен инициализироваться только первый элемент массива.

08.09.09 08:43: Перенесено из 'Тестирование приложений'
массив c++ синтаксис
Re: long arr[100] = {0};
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.07.09 14:05
Оценка:
Здравствуйте, ch., Вы писали:

ch.>Подскажите, сабж действительно инициализирует ВЕСЬ массив нулями? Вроде как по синтаксису должен инициализироваться только первый элемент массива.


По стандарту должен инициализировать весь массив.
Re: long arr[100] = {0};
От: Bell Россия  
Дата: 08.09.09 04:52
Оценка:
Здравствуйте, ch., Вы писали:


ch.>C++


ch.>Подскажите, сабж действительно инициализирует ВЕСЬ массив нулями? Вроде как по синтаксису должен инициализироваться только первый элемент массива.

Весь.
Такая запись тоже зануляет весь массив:

long arr[100] = {};



8.5.1/7
If there are fewer initializers in the list than there are members in the aggregate, then each member not
explicitly initialized shall be value-initialized (8.5)
...


value-инициализация в данном случае — это обнуление.
Любите книгу — источник знаний (с) М.Горький
Re: long arr[100] = {1, 2, 3, 0};
От: игппук Беларусь  
Дата: 08.09.09 07:26
Оценка:
а вот эта конструкция заполняет первые три элемента, а остальные зануляет
проклятый антисутенерский закон
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.