Como declarar matrizes em C ++

A maneira usual de declarar uma matriz é simplesmente alinhar o nome do tipo, seguido de um nome de variável, seguido de um tamanho entre parênteses, como em esta linha de código:

Números int [10] -

Esse código declara um array de 10 inteiros. O primeiro elemento recebe o índice 0, e o elemento final fica índice 9. Sempre lembrar que em C ++ matrizes começam em 0 e o maior índice é um a menos do que o tamanho. (Lembrar, índice refere-se à posição no interior da matriz, e tamanho refere-se ao número de elementos na matriz.)

Uma pergunta comum que o estudante de programação habitual pergunta é, # 147 Posso apenas declarar uma matriz sem especificar um tamanho # 148- A linha seria parecido com isto:

Números int []

Em determinadas situações, você pode declarar uma matriz sem colocar um número entre parênteses. Por exemplo, você pode inicializar uma matriz sem especificar o número de elementos:

MyNumbers int [] = {} - 1,2,3,4,5,6,7,8,9,10

O compilador é inteligente o suficiente para contar quantos elementos você colocar dentro das chaves, em seguida, o compilador faz que conta o tamanho da matriz.

Especificando o tamanho da matriz ajuda a diminuir suas chances de ter erros, bugs, em todos os lugares bugs. Além disso, ele tem a vantagem adicional de que, na declaração real, se o número entre parênteses não coincide com o número de elementos dentro de chaves, o compilador emite um erro, pelo menos se o número é menor de qualquer maneira. Os seguintes

int MyNumbers [5] = {} - 1,2,3,4,5,6,7,8,9,10

produz este erro do compilador:

erro: demasiados inicializadores para 'int [5]'

Mas se o número entre parênteses for maior que o número de elementos, como no código a seguir, você não vai obter um erro. Por isso tem cuidado!

MyNumbers int [15] = {} - 1,2,3,4,5,6,7,8,9,10

Você também pode pular especificar o tamanho da matriz quando você passar uma matriz para uma função, como este:

int addup (Números int [], int count) {int loop-int sum = 0-for (loop = 0- circuito lt; laço Count- ++) {sum + = Números [LOOP] -} return sum-}

Esta técnica é particularmente potente porque o Adicionar função pode funcionar para qualquer matriz de tamanho. Você pode chamar a função como este:

cout lt; lt; Addup (MyNumbers, 10) lt; lt; endl-

Mas essa maneira de fazer isso é tipo de chato, porque você tem que especificar o tamanho cada vez que você ligar para a função. No entanto, você pode contornar esse problema. Olhe para esta linha de código:

cout lt; lt; Addup (MyNumbers, sizeof (MyNumbers) / 4) lt; lt; endl-

Com a matriz, o tamanho de operador informa quantos bytes ele usa. Mas o tamanho da matriz é geralmente o número de elementos, e não o número de bytes. Então você dividir o resultado de tamanho de por 4 (o tamanho de cada elemento).

Mas agora você tem esse número mágico, 4, sentado ali. (Mnúmero agicrefere-se a um número aparentemente arbitrário que é recheado algum lugar em seu código) Assim, uma abordagem ligeiramente melhor seria entrar nesta linha.:

cout lt; lt; Addup (MyNumbers, sizeof (MyNumbers) / sizeof (int)) lt; lt; endl-

Agora esta linha de código funciona, e aqui está o porquê: O tamanho de a matriz dividida pela tamanho de cada elemento na matriz dá o número de elementos na matriz.

menu