A indexação em uma matriz em c ++

Em C ++, você deve fornecer uma índice para aceder a um elemento específico dentro da matriz. Um índice deve ser um tipo de contagem (tal como int), Como demonstrado aqui:

nScores [11] = 10-

Isto é semelhante à maneira que os carros de aluguer são numerados. No entanto, ao contrário dos humanos, C ++ começa com 0 quando numeração suas matrizes. Assim, o primeiro marcador na matriz nScores é nScores [0].

Então, como isso funciona exatamente? Bem, pense em um estacionamento de aluguer de automóveis. A figura mostra como os carros de aluguer são normalmente numeradas em seus estacionamentos. O primeiro carro na linha B carrega a designação B1. Para encontrar B11, basta mover o seu olhar dez carros para a direita.

C ++ faz uma coisa semelhante. Para executar a instrução nScores [11] = 10, C ++ começa com o endereço do primeiro elemento nScores. Em seguida, ele move para a direita 11 espaços e armazena a 10 naquele local. Isto é mostrado graficamente na figura a seguir.

O fato de que C ++ começa a contar em zero leva a um ponto que sempre confunde os iniciantes. A declaração

int nScores [100] -

declara 100 pontuação, que são numerados de 0 a 99. A expressão

nScores [100] = 0- // isso é um erro

zera o primeiro elemento além o final da matriz. O último elemento na matriz é nScores [99]. compilador do C ++ não vai pegar esse erro e terá todo o prazer acessar esta não-elemento, que muitas vezes leva ao programa de acesso a alguma outra variável por engano. Este tipo de erro é muito difícil de encontrar porque os resultados são tão imprevisíveis.


Publicações relacionadas