Indexação em uma matriz em C ++

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

nScores [11] = 10-

Isto é semelhante à forma como os veículos estão contados. No entanto, ao contrário dos humanos, C ++ começa com 0 quando numeração suas matrizes. Assim, a primeira pontuação 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 exerce a designação B1. Para encontrar B11, basta mover o seu olhar dez carros para a direita.

image0.jpg

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, move para a direita 11 e armazena uma espaços 10 naquele local. Isto é mostrado graficamente na figura a seguir.

image1.jpg

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 numeradas de 0 a 99. A expressão

nScores [100] = 0- // isto é 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 este non-elemento, que muitas vezes leva ao programa 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.

menu