Indexación en una matriz en c ++

En C ++, debe proporcionar un índice para acceder a un elemento específico dentro de la matriz. Un índice debe ser un tipo de recuento (tales como int), Como se ha demostrado aquí:

nScores [11] = 10-

Esto es similar a la forma en que los coches de alquiler están contados. Sin embargo, a diferencia de los humanos, C ++ comienza con 0 cuando la numeración de sus matrices. Así, la primera anotación en la matriz nScores es nScores [0].

Entonces, ¿cómo funciona esto exactamente? Bueno, pensar en un alquiler de estacionamiento de coches. La figura muestra cómo los coches de alquiler son normalmente numerados en sus estacionamientos. El primer coche en la línea B lleva la designación B1. Para encontrar B11, simplemente mueva su mirada diez coches a la derecha.

imagen0.jpg

C ++ hace una cosa similar. Para ejecutar la sentencia nScores [11] = 10, C ++ comienza con la dirección del primer elemento de nScores. A continuación, mueve a la derecha 11 espacios y almacena un 10 en esa ubicación. Esto se muestra gráficamente en la figura siguiente.

image1.jpg

El hecho de que C ++ comienza a contar desde cero conduce a un punto que siempre confunde principiantes. La declaración

int nScores [100] -

declara 100 partituras, que están numerados de 0 a 99. La expresión

nScores [100] = 0- // esto es un error

pone a cero el primer elemento más allá el final de la matriz. El último elemento de la matriz es nScores [99]. El compilador de C ++ no cogerá este error y estará feliz de acceder a este no-elemento, que muy a menudo conduce al programa acceder a alguna otra variable por error. Este tipo de error es muy difícil de encontrar, porque los resultados son tan impredecibles.




» » » » Indexación en una matriz en c ++