Vídeo: Programar em C - Introdução Matrizes(Matriz bidimensionais) - Aula 25 2024
Em C ++, uma variável local não inicia a vida com um valor válido, nem mesmo o valor 0. Dito de outra forma, uma variável local contém lixo até que você realmente armazene algo em isto. Arrays declarados localmente são os mesmos - cada elemento contém lixo até que você realmente atribua algo a ele.
Você deve inicializar variáveis locais quando as declara. Esta regra é ainda mais verdadeira para arrays. É muito fácil acessar elementos de matriz não inicializados pensando que eles são valores válidos.
"Variável local" refere-se às variáveis normais declaradas dentro de uma função. Os puristas C ++ realmente chamam essas variáveis automáticas para diferenciá-las de variáveis estáticas.
Felizmente, uma pequena matriz pode ser inicializada no momento em que é declarada com uma lista de inicialização. O trecho de código a seguir demonstra como isso é feito:
float floatArray [5] = {0. 0, 1. 0, 2. 0, 3. 0, 4. 0};
Isso inicializa floatArray [0] para 0, floatArray [1] para 1. 0, floatArray [2] para 2. 0 e assim por diante.
C + + pads a lista de inicialização com 0s se o número de elementos na lista for menor que o tamanho da matriz. Na verdade, uma lista de inicialização vazia pode ser usada para inicializar uma matriz em 0:
int nArray [128] = {}; // inicializar matriz para todos os 0's
O número de constantes de inicialização pode determinar o tamanho da matriz. Por exemplo, você poderia ter determinado que floatArray tem cinco elementos apenas contando os valores dentro das chaves. C ++ pode contar também (aqui é pelo menos uma coisa que o C ++ pode fazer por si mesmo).
float floatArray [] = {0. 0, 1. 0, 2. 0, 3. 0, 4. 0};