Escolar Documentos
Profissional Documentos
Cultura Documentos
De forma similar, a seguinte declaração cria uma matriz do tipo float, que
contém 50 salários:
float salarios [50];
salarios[0] = 35000;
salarios[49] = 250000;
void main(void)
int notas[100];
float salar[100];
char string[100];
sizeof(notas));
sizeof(salar));
sizeof(string));
void main(void)
printf("Valores da Matriz\n");
matriz[i] = 80;
int i;
printf("Valores da Matriz\n");
void main(void)
int i;
Por exemplo, suponha que seja necessário alterar o código anterior de tal forma
que ele suporte 10 valores. Precisará alterar não somente a declaração da matriz, mas
também o laço for. Quanto mais alterações forem feitas em um programa, maiores as
chances de errar. O programa a seguir declara uma matriz com base na constante
TAM_MATRIZ. Como se vê, o programa não somente usa a constante para declarar a
matriz, mas também usa a constante como a condição final para o laço for:
#include <stdio.h>
#define TAM_MATRIZ 5
void main(void)
Se mais tarde for necessário alterar o tamanho da matriz, poderá alterar o valor
atribuído à constante TAM_MATRIZ para que o programa automaticamente atualize os
laços que controlam a matriz como o tamanho da matriz.
6.8 – Passando uma Matriz a uma Função
Quando declara-se uma função que trabalha com um parâmetro matriz, precisa
informar o compilador. Por exemplo, o seguinte programa usa a função exibe_matriz
para exibir os valores em uma matriz. Como pode-se ver, o programa passa para a
função tanto a matriz como o número de elementos que a matriz contém, como
mostrado a seguir:
#include <stdio.h>
int i;
printf("%d\n", valores[i]);
void main(void)
exibe_matriz(notas, 5);
Quando uma função recebe uma matriz como parâmetro, o programa não precisa
especificar o tamanho da matriz na declaração do parâmetro. No caso da função
exibe_valores, os colchetes após o nome da variável valor informam o compilador de
que o parâmetro é uma matriz. Sabendo que o parâmetro é uma matriz, o compilador
não se preocupa com o tamanho da matriz que o programa passa para a função.
6.9 – Revisitando as Matrizes Como Funções
No item anterior, foi visto que ao declarar o parâmetro formal para uma matriz,
não é necessário declarar o tamanho da matriz. Em vez disso, pode-se especificar
somente o abre e fecha colchetes. O programa a seguir passa três matrizes diferentes (de
diferentes tamanhos) para a função exibe_valores:
#include <stdio.h>
int i;
printf("%d\n", valores[i]);
void main(void)
exibe_matriz(notas, 5);
exibe_matriz(conta, 10);
exibe_matriz(pequeno, 2);
strupr(titulo);
1 2 3
4 5 6
void main(void)
tabela[linha][coluna]);
void main(void)
float valores[2][3][5] = {
};
coluna, tabela,
valores[linha][coluna][tabela]);
int i, j;
void main(void)
{11, 12, 13, 14, 15, 16, 17, 18, 19, 20},
{21, 22, 23, 24, 25, 26, 27, 28, 29, 30}};
exibe_2d_matriz(a, 1);
exibe_2d_matriz(b, 2);
exibe_2d_matriz(c, 3);
long soma = 0;
int i;
soma += matriz[i];
return(soma);
void main(void)
{11, 12, 13, 14, 15, 16, 17, 18, 19, 20},
soma_matriz(a, 10));
soma_matriz(b, 20));
soma_matriz(c, 30));