Ejemplo
El ejemplo adjunto muestra las características (tipo y tamaño) de los elementos de una matriz bidimensional tal como son considerados por el compilador.
#include <iostream.h>
#include <typeinfo.h>
int main(void)
{
// ===============
char* a1[2] = {"Ok", "Falso"}; // matriz de punteros a carácter
char a2[][7]= {"Ok", "Falso"}; // matriz de caracteres
cout << "a1 es tipo " << typeid(a1).name()
<< " tamaño: " << sizeof(a1) << " Bytes" << endl;
cout << " a1[0] tipo: " << typeid(a1[0]).name() << " -> " << a1[0] << endl;
cout << " tamaño: " << sizeof(a1[0]) << " Bytes" << endl;
cout << " a1[1] tipo: " << typeid(a1[1]).name() << " -> " << a1[1] << endl;
cout << " tamaño: " << sizeof(a1[1]) << " Bytes" << endl;
cout << "a2 es tipo " << typeid(a2).name()
<< " tamaño: " << sizeof(a2) << " elementos" << endl;
cout << " a2[0] tipo: " << typeid(a2[0]).name() << " -> " << a2[0] << endl;
cout << " tamaño: " << sizeof(a2[0]) << " elementos" << endl;
cout << " a2[1] tipo: " << typeid(a2[1]).name() << " -> " << a2[1] << endl;
cout << " tamaño: " << sizeof(a2[1]) << " elementos" << endl;
return 0;
}
Salida:
a1 es tipo char *[2] tamaño: 8 Bytes
a1[0] tipo: char * -> Ok
tamaño: 4 Bytes
a1[1] tipo: char * -> Falso
tamaño: 4 Bytes
a2 es tipo char[2][7] tamaño: 14 elementos
a2[0] tipo: char[7] -> Ok
tamaño: 7 elementos
a2[1] tipo: char[7] -> Falso
tamaño: 7 elementos