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.