Возможный дубликат:
C и С++: частичная инициализация автоматической структуры
При чтении Code Complete я столкнулся с примером инициализации массива С++:
float studentGrades[ MAX_STUDENTS ] = { 0.0 };
Я не знал, что С++ может инициализировать весь массив, поэтому я его протестировал:
#include <iostream>
using namespace std;
int main() {
const int MAX_STUDENTS=4;
float studentGrades[ MAX_STUDENTS ] = { 0.0 };
for (int i=0; i<MAX_STUDENTS; i++) {
cout << i << " " << studentGrades[i] << '\n';
}
return 0;
}
Программа дала ожидаемые результаты:
0 0
1 0
2 0
3 0
Но изменение значения инициализации от 0.0
до, скажем, 9.9
:
float studentGrades[ MAX_STUDENTS ] = { 9.9 };
Получил интересный результат:
0 9.9
1 0
2 0
3 0
Указывает ли объявление инициализации только первый элемент в массиве?