C - Matrizes

Arrays um tipo de estrutura de dados que pode armazenar uma coleção sequencial de tamanho fixo de elementos do mesmo tipo. Uma matriz é usada para armazenar uma coleção de dados, mas geralmente é mais útil pensar em uma matriz como uma coleção de variáveis ​​do mesmo tipo.

Em vez de declarar variáveis ​​individuais, como número0, número1, ... e número99, você declara uma variável de matriz, como números e usa números [0], números [1] e ..., números [99] para representar variáveis ​​individuais. Um elemento específico em uma matriz é acessado por um índice.

Todas as matrizes consistem em locais de memória contíguos. O endereço mais baixo corresponde ao primeiro elemento e o endereço mais alto ao último elemento.

Declaração de matrizes

Para declarar uma matriz em C, um programador especifica o tipo dos elementos e o número de elementos exigidos por uma matriz da seguinte maneira -

type arrayName [ arraySize ];

Isso é chamado de matriz unidimensional . oarraySize deve ser uma constante inteira maior que zero e typepode ser qualquer tipo de dados C válido. Por exemplo, para declarar uma matriz de 10 elementos chamadabalance do tipo double, use esta instrução -

double balance[10];

Aqui, o equilíbrio é uma matriz variável que é suficiente para conter até 10 números duplos.

Inicializando matrizes

Você pode inicializar um array em C um por um ou usando uma única instrução da seguinte maneira -

double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};

O número de valores entre colchetes {} não pode ser maior do que o número de elementos que declaramos para a matriz entre colchetes [].

Se você omitir o tamanho do array, um array grande o suficiente para conter a inicialização é criado. Portanto, se você escrever -

double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};

Você criará exatamente o mesmo array que fez no exemplo anterior. A seguir está um exemplo para atribuir um único elemento da matriz -

balance[4] = 50.0;

A instrução acima atribui o elemento na matriz com um valor de 50,0. Todas as matrizes têm 0 como o índice de seu primeiro elemento, que também é chamado de índice de base e o último índice de uma matriz terá o tamanho total da matriz menos 1. Abaixo está a representação pictórica da matriz que discutimos acima -

Acessando Elementos de Matriz

Um elemento é acessado indexando o nome da matriz. Isso é feito colocando o índice do elemento entre colchetes após o nome da matriz. Por exemplo -

double salary = balance[9];

A instrução acima pegará o décimo elemento da matriz e atribuirá o valor à variável salary. O exemplo a seguir mostra como usar todos os três conceitos acima mencionados viz. declaração, atribuição e acesso a matrizes -

#include <stdio.h>
 
int main () {

   int n[ 10 ]; /* n is an array of 10 integers */
   int i,j;
 
   /* initialize elements of array n to 0 */         
   for ( i = 0; i < 10; i++ ) {
      n[ i ] = i + 100; /* set element at location i to i + 100 */
   }
   
   /* output each array element's value */
   for (j = 0; j < 10; j++ ) {
      printf("Element[%d] = %d\n", j, n[j] );
   }
 
   return 0;
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

Arrays em detalhes

Os arrays são importantes para C e precisam de muito mais atenção. Os seguintes conceitos importantes relacionados a array devem ser claros para um programador C -

Sr. Não. Conceito e descrição
1 Matrizes multidimensionais

C oferece suporte a matrizes multidimensionais. A forma mais simples do array multidimensional é o array bidimensional.

2 Passando matrizes para funções

Você pode passar para a função um ponteiro para uma matriz, especificando o nome da matriz sem um índice.

3 Retorna a matriz de uma função

C permite que uma função retorne um array.

4 Ponteiro para uma matriz

Você pode gerar um ponteiro para o primeiro elemento de uma matriz simplesmente especificando o nome da matriz, sem nenhum índice.