programacion - matriz transpuesta c++
Inicialización de la matriz flotante de C++ (2)
No, establece todos los miembros / elementos que no se han establecido explícitamente en su valor de inicialización predeterminado, que es cero para los tipos numéricos.
Posible duplicado:
C y C ++: inicialización parcial de estructura automática
Mientras leía el código completo , encontré un ejemplo de inicialización de matriz de C ++:
float studentGrades[ MAX_STUDENTS ] = { 0.0 };
No sabía que C ++ podía inicializar la matriz completa, así que la probé:
#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, digamos, 9.9
:
float studentGrades[ MAX_STUDENTS ] = { 9.9 };
Dio el interesante resultado:
0 9.9
1 0
2 0
3 0
¿La declaración de inicialización establece solo el primer elemento de la matriz?
Si usa cualquier cosa que no sean llaves vacías, solo inicializará las primeras N posiciones con ese valor y todas las demás se inicializarán con 0. En este caso, N es el número de argumentos que pasó a la lista de inicialización, es decir,
float arr1[10] = { }; // all elements are 0
float arr2[10] = { 0 }; // all elements are 0
float arr3[10] = { 1 }; // first element is 1, all others are 0
float arr4[10] = { 1, 2 }; // first element is 1, second is 2, all others are 0