Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Iterar vetores e matrizes
  2. Copiar dados entre vetores e matrizes
  3. Verificar tamanho de vetor/matriz
  4. Calcular dimensões de vetor/matriz
  5. Comparando vetores/matrizes
  6. Compiando partes de vetores/amtrizes

Nesta parte do tutorial vamos aprender as operações básicos para vetores e matrizes, estáticos, como: iteração, cópia, verificar tamanho e outros.

Um introdução sobre esses tipos de dados já foram visto em Vetor e Matriz sendo a leitura recomendada.

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

Existem outras formas para declaração de matrizes/vetores usando alocação de memória, mas esse assunto será visto em futuras atualizações.

Para iterarmos ou percorrermos vetores e matrizes, podemos utilizar o comando for estudado em C: Comandos de repetição.

Quando trabalhamos com vetores, precisamos de uma variável auxiliar que servirá como índice de um elemento.

Exemplo 1
#include <stdio.h>
void main ()
{

  int vetor[5] = { -1, 9, 235, 10, 0xff };
  int indice;

  for (indice = 0; indice < 5; indice++)
  {
      printf ("%d ", vetor[indice]);
  }
}
Saída
-1 9 235 10 255

Quando trabalhamos com matrizes, precisamos de variáveis auxiliares para que representam as linhas e colunas com as quais podemos acessar seus elementos.

Exemplo 2
#include <stdio.h>
void main ()
{
  int matriz[2][2] = {{-1,9},{235,10}};
  int linha,coluna;

  for (linha = 0; linha < 2; linha++)
  {
        for (coluna = 0; coluna < 2; coluna++)
        {
            printf("%d ", matriz[linha][coluna]);
        }
        
        printf ("\n");
  }
}
Saída
-1 9 
235 10 

Para copiarmos o conteúdo de matrizes e vetores, acessamos seus elementos e copiamos para um novo vetor ou matriz. O comando for aprendido em Comandos de repetição será utilizado.

Quando trabalhamos com vetor, precisamos de uma variável auxiliar que servirá como índice para ambos os vetores como índice de origem e destino para cópia do elemento.

Exemplo 3
#include <stdio.h>

int main ()
{
  int origem[5] = { -1, 9, 235, 10, 0xff };
  int destino[5];
  
  int indice;
  for (indice = 0; indice < 5; indice++)
  {
      destino[indice] = origem[indice]; //cópia
  }
  
  for (indice = 0; indice < 5; indice++)
  {
      printf ("%d ", destino[indice]);
  }

  return 0;
}}
Saída
-1 9 235 10 255

Quando trabalhamos com matriz, precisamos de variáveis auxiliares para que representam as linhas e colunas onde estão contidos os seus elementos que serão copiados da matriz origem para a matriz de destino.

Exemplo 4
#include <stdio.h>

int main ()
{
  int origem[2][2] = {{-1,9},{235,10}};
  int destino[2][2];
  
  int linha,coluna;
  for (linha = 0; linha < 2; linha++)
  {
        for (coluna = 0; coluna < 2; coluna++)
        {
            destino[linha][coluna] = origem[linha][coluna]; //cópia
        }
  }
  
  for (linha = 0; linha < 2; linha++)
  {
        for (coluna = 0; coluna < 2; coluna++)
        {
            printf("%d ", destino[linha][coluna]);
        }
        
        printf ("\n");
  }

  return 0;
}
Saída
-1 9 
235 10 

Outras formas de cópia de vetores e matrizes serão vistas em futuração atualizações.

Vetores e matrizes armazenam certas quantidades de elementos. Esses elementos possuem um tamanho em bytes. Levando isso em consideração, não podem ser confundir número de elementos armazenados com o tamanho total do vetor.

Exemplo
int vetor[3] = {1,2,3}; 

No exemplo acima temos um vetor de inteiros com uma capacidade de armazenamento de 3 elementos. Porém, cada elemento possui o tamanho de 4 bytes. Assim podemos calcular o tamanho de um vetor como sendo:

Fórmula 1
tamanho = numero_elementos*tamanho_tipo_dado

Para descobrirmos os tamanho em bytes de um vetor, utilizamos o operador sizeof que pode receber como argumento um vetor.

Exemplo 5
#include <stdio.h>

int main()
{
    int vetor[2];

    printf("%lu",sizeof(vetor));

    return 0;
}
Saída
8

Caso a quantidade de elementos de um vetor seja desconhecido, utilizamos a fórmula abaixo para descobrir seu número de elementos:

Fórmula 2
capacidade = tamanho_vetor/tamanho_tipo_dado
Exemplo 6
int main()
{
    int vetor[2];
    printf("%lu",sizeof(vetor)/sizeof(int));
    return 0;
}
Saída
2

Para trabalhar com as dimensões de uma matriz, utilizamos os o que foi discutido sobre vetores acima e aplicamos à matrizes.

Fórmulas
tamanho = sizeof(matriz)
tamanho_tipo = sizeof(tipo_dado)
capacidade = tamanho/tamanho_tipo
tamanho_linha = sizeof(matriz[0])
linhas = tamanho/tamanho_linha
colunas = tamanho_linha/tamanho_tipo
Exemplo
#include 

int main()
{
    int vetor[2][3];

    printf("tamanho matriz: %lu \n",sizeof(matriz));
    printf("capacidade: %lu \n",sizeof(matriz)/sizeof(int));
    printf("tamanho das linhas: %lu \n",sizeof(matriz[0]));
    printf("linhas: %lu \n",sizeof(matriz)/sizeof(matriz[0]));
    printf("colunas: %lu \n",sizeof(matriz[0])/sizeof(int));
    return 0;
}
Saída
tamanho matriz: 24 
capacidade: 6 
tamanho das linhas: 12 
capacidade da linha: 2 
capacidade da coluna: 3 
  1. 11/03/2025 - revisão 3 - Adição de fórmulas para matriz
  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