Uma introdução a matrizes em C

Uma matriz é uma estrutura de dados usada para armazenar itens sequenciais do mesmo tipo de dados. A posição de um elemento na sequência é chamada de índice. Os índices começam de 0 a (n-1).

Neste artigo, você aprenderá como usar matrizes em C. A maioria dos conceitos aqui se aplica à maioria das outras linguagens de programação, portanto, certifique-se de observá-los.

Definindo matrizes

Para definir uma matriz, escreva seu tipo de dados seguido pelo nome da matriz e colchetes:

 int age[8];

Dentro dos colchetes está o número esperado de itens de dados que a matriz receberá. Se precisar declarar dois arrays ao mesmo tempo, você pode fazer isso conforme a seguir. Vale ressaltar que declará-los separadamente é a forma preferida.

 int age[8], height[8];

Também é possível declarar uma matriz como a seguir:

 int[8] age;

A sintaxe acima significaria que a idade é um ponteiro para uma matriz do tipo int . Embora você possa usar a "sintaxe de ponteiro", a primeira é preferida.

Relacionado: Como exibir a tabela de multiplicação de um número usando Python, C ++, JavaScript e C

Às vezes, você pode não saber quantos elementos espera que seu array tenha. Nesse caso, você teria que declarar a matriz sem o número de elementos. Veja o exemplo abaixo:

 int age[];

Operações em matrizes

Para fazer referência a um elemento da matriz, escreva o nome da matriz seguido por seu índice entre colchetes (por exemplo, idade [5] ). Você também pode usar variáveis ​​dentro dos colchetes:

 age[x+y]

Você precisa se certificar de que o cálculo dessas variáveis ​​está no intervalo de 0 a (n-1). Caso contrário, você obterá um erro de compilação.

Inicialização

Os elementos da matriz podem ser fornecidos na declaração ou posteriormente no programa. Essa ação é conhecida como inicialização, pois a matriz inicialmente tem valores nulos.

Veja o exemplo abaixo. Ele imprime o valor de um elemento e seu índice na matriz. A linha 5 usa uma lista de inicializadores para inicializar a matriz de inteiros.

 #include <stdio.h>
int main(void) {
printf("%s%11s
", "Element", "Value");
int n[4] = {1, 4, 9, 16};
// output array elements in tabular format
for (size_t i = 0; i < 4; ++i) {
printf("%5u%10d
", i, n[i]);
}
}

Saída :

 Element Value
0 1
1 4
2 9
3 16

Usando matrizes para armazenar strings

Os arrays também podem ser usados ​​para armazenar strings, não apenas inteiros. Quando usado dessa forma, lembre-se de incluir aspas simples para cada elemento na lista de inicializadores.

 char fruit[]= ['b', 'e', 'r', 'r', 'y', ' ' ];

Observe que o tipo de dados char é usado. Um literal de string consiste em caracteres individuais, e é por isso que você vê char .

Relacionado: Como aprender programação C ++: 6 locais para começar

A matriz mostrada termina com uma sequência de escape ( 0 ). Este é um caractere de terminação de string denominado caractere nulo. Você deve sempre incluir isso ao inicializar uma lista de arrays.

Na verdade, existe uma maneira mais simples de inicializar uma matriz de caracteres. Mostramos a abordagem anterior primeiro, para que você saiba que uma matriz de caracteres sempre tem um caractere final especial ( 0 ). É um erro comum para programadores iniciantes ter o tamanho do array menor em um, esquecendo o último elemento ( 0 ).

 char string1[5] = "Code";

Suponha que você precise obter a entrada do usuário e armazená-la em um array. Você pode usar a função de biblioteca padrão scanf para isso.

No entanto, você precisa especificar o número de caracteres que a função deve esperar. Isso ocorre porque o scanf não verifica o tamanho do array e pode gravar dados em endereços além do array, causando um estouro de buffer.

Use o especificador de conversão % s para definir a entrada máxima esperada. A função scanf lerá todos os caracteres inseridos até que um espaço, tabulação, nova linha ou um indicador de fim de arquivo seja encontrado.

Avançando na sua programação C

Os recursos que você usa para aprender são tão cruciais quanto seu zelo para aprender. Aprender sem boas práticas tornará sua jornada de programação um desafio.

C é uma linguagem particularmente desafiadora de aprender, pois não é orientada a objetos. Felizmente, temos muitos recursos para ajudá-lo a dominar a programação C.