Duplicar posibles:
C and C++ : Partial initialization of automatic structureC++ flotar la inicialización del campo
Mientras lee Code Complete, me encontré con un C++ ejemplo la inicialización del campo:
float studentGrades[ MAX_STUDENTS ] = { 0.0 };
no lo hice saber C++ podría inicializar la e ntire matriz, por lo que he comprobado:
#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;
}
El programa dio los resultados esperados:
0 0
1 0
2 0
3 0
pero cambiando el valor de inicialización de 0.0
a, por ejemplo, 9.9
:
float studentGrades[ MAX_STUDENTS ] = { 9.9 };
Dio el resultado interesante:
0 9.9
1 0
2 0
3 0
¿La declaración de inicialización establece solo el primer elemento en la matriz?
No olvide que puede utilizar una lista de inicialización vacía, en cuyo caso * todos los elementos * se establecen en cero. –
@MarkRansom: Sí, sí, lo agregaré, gracias. –
Haces que parezca que 0 es un caso especial, pero no lo es. Está configurando el primer elemento en 0 y luego el resto en 0. –