Vetor e matriz, estáticos, são tipos de dados derivados que armazenam dados de forma sequencial em memória. Nesta parte do tutorial vamos estudar um pouco mais a fundo esses tipos de dados.

O básico sobre esses tipos de dados já foram visto em C: Vetor e Matriz sendo a leitura recomendada.

Vetor e matriz de ponteiros e funções podem ser vistos em C Ponteiro: Vetor/Matriz de ponteiro e C Ponteiro: Ponteiro para função.

Existem outras formas para crição e operações com alocação de memória, mas esse assunto será visto em futuras atualizações.

Na linguagem C podemos criar vetores a partir dos tipos de dados já estudados. Podemos enxergar um vetor como um local para armazenar variáveis de forma sequencial.

Tab. 1: Vetor de int
0 1 2 3 4 5 (...)
1 10 -100 0 2 - -

A declaração de um vetor na linguagem C é feita utilizando um tipo de dado desejado para uma variável e sua dimensão utilizando o indexado [].

Sintaxe
tipo_dado nome_vetor[dimensao] = {valores}; //iniciado
tipo_dado nome_vetor[dimensao]; //não iniciado
tipo_dado nome_vetor[dimensao] = {0}; //todos elementos "zerados"

Um vetor com valores iniciados devem ter seus valores, baseados no tipo de dado utilizado, delimitados por { e }, separados por (,) e terminados com (;):

Sintaxe
tipo_dado nome vetor[dimensao] = {valor1,valor2,valor3};

Todos os tipos de dados podem ser utilizados para declaração de vetores na linguagem C como char, float , struct, ponteiros e etc.

A linguagem C não permite que um vetor seja iniciada quando suas dimensões são baseadas em variáveis. Nesses casos, o vetor deve ser declarado sem valores iniciais.

O acesso aos elementos de um vetor é feita utilizando o seus índices passados como argumento para o indexador []. Ponteiros também podem ser utilizados, mas não serão abordados nesta parte do tutorial.

Sintaxe
tipo_dado nome vetor[indice] = valor;
tipo_dado nome vetor[indice];
Exemplo 1
#include <stdio.h>

void main()
{
    int vetor[2];
    vetor[0] = 1;
    vetor[1] = 2;
    printf("%d",vetor[0]);
}
Saída
1

Uma matriz é um vetor de duas dimensões ou vetor contendo vetores. Sendo assim, seus elementos são armazenados de forma sequencial, porém o acesso a esses elementos pode ser feito utilizando suas linhas e colunas. Uma matriz com as dimensões 3x3 pode ser representada na forma abaixo:

Tab. 2: Matriz de int
L/C 0 1 2
0 10 20 30
1 40 50 60
2 70 80 90

A declaração de uma matriz na linguagem C é feita utilizando um tipo de dado deseja para uma variável e suas dimensões entre [ e ].

Sintaxe
tipo_dado nome_matriz[linhas][colunas] = {valores}; //iniciado
tipo_dado nome_matriz[linhas][colunas]; //não iniciado
tipo_dado nome_matriz[linhas][colunas] = {0}; //todos elementos "zerados"

Uma matriz com valores iniciados devem ter seus valores delimitados por { e }, separados por (,) e terminados com (;). Os valores para cadas linhas devem ser delimitados por { e }, separados por (,).

Sintaxe
tipo_dado nome matriz[linhas][colunas] = {
                                          {valor1,valor2,valor3},
                                          {valor4,valor5,valor6},
                                          {(...)}
                                         };

Todos os tipos de dados podem ser utilizados para criação de vetores na linguagem C como char, float , struct e ponteiros.

A linguagem C não permite que uma matriz seja iniciada quando suas dimensões são baseadas em variáveis. Nesses casos, a matriz deve ser declarada sem valores iniciais.

O acesso aos elementos de uma matriz é feita utilizando o sua linha e coluna que são passadas como argumentos para o indexador []. Ponteiros também podem ser utilizados, mas não serão abordados nesta parte do tutorial.

Sintaxe
tipo_dado nome matriz[linha][coluna] = valor; //atribuição
tipo_dado nome matriz[linha][coluna]; //recuperação;
Exemplo 1
#include <stdio.h>

void main()
{
    int vetor[2][2] ={{1,2},{3,4}};
    vetor[0][0] = 1;
    vetor[1][0] = 2;
    printf("%d",vetor[1][0]);
}
Saída
2
  1. 11/03/2025 - revisão 3 - Ajuste em intro
  2. 08/10/2024 - revisão 2 - Ajustes pontuais
  3. 28/09/2023 - revisão 1 - Correção em referências, erros gramaticais e sintaxe
  4. 19/05/2023 - versão inicial