Você está na página 1de 2

Inicialização de Vetores

Em C é possível inicializar vetores no momento em que são declarados da mesma forma


que variáveis. A forma de fazer isto é a seguinte:
tipo nome[dim1][dim2]...[dimN] = {Lista de valores};
A lista de valores é um conjunto de valores separados por vírgulas. Por exemplo, a
declaração abaixo iniciliza um vetor inteiro de cinco posições.
int vetor[5] = { 10, 15, 20, 25, 30 };
Observe que nesta declaração é necessário que o tamanho do conjunto seja conhecido
antecipadamente. No entanto, também é possível inicializar vetores em que não se conhece
o seu tamanho. Observar que neste caso é importante que o programador preveja um modo
de indicar o fim do vetor.

O exemplo inici.c a seguir mostra os dois casos ilustrados acima. Para descobrir o como
parar de processar o vetor apresentamos duas soluções possíveis. No primeiro caso a
condição de fim do vetor é o número negativo -1, sendo assim uma posição do vetor é
perdida para armazenar esta condição. No segundo caso é usado o operador sizeof para
descobir o tamanho do vetor. Observe que sizeof calcula o tamanho do vetor em bytes e por
esta razão é necessário uma divisão pelo tamanho em bytes do tipo de cada elemento.

#define DIM 5
#include <stdio.h>

int main()
{
int vetor[DIM] = {10, 15, 20, 25, 30};
int vetor1[] = {10, 20, 30, 40, 50, 60, -1};
int vetor2[] = {3, 6, 9, 12, 15, 18, 21, 24};
unsigned int i, tam;

printf("\nEste programa imprime um vetor contendo numeros inteiros


e\n");
printf("que foi inicializado durante a sua declaracao.\n");

/* Impressao dos conjuntos */


printf("\nVetor com tamanho pre-definido\n");
for (i=0; i <DIM; i++)
printf("Elemento %d = %d\n", i, vetor[i]);
printf("\nVetor terminando por -1\n");

for (i=0; vetor1[i]>0; i++)


printf("Elemento %d = %d\n", i, vetor1[i]);

tam = sizeof (vetor2) / sizeof (int);


printf("\nDescobrindo o tamanho do Vetor\n");

for (i=0; i < tam ; i++)


printf("Elemento %d = %d\n", i, vetor2[i]);

return 0;

}
É possível inicializar matrizes multidimensionais e neste caso é necessário especificar todas
as dimensões menos a primeira para que o compilador possa reservar memória de maneira
adequada. A primeira dimensão somente especifica quantos elementos o vetor irá
armazenar e isto lendo a inicialização o compilador pode descobrir.

O exemplo abaixo inistr.c ilustra a definição de um vetor de cadeia de caracteres, que nada
mais é do que uma matriz de caracteres.

#define DIM 5
#include <stdio.h>

int main( void )


{
char disciplinas [][40] = {
"disc 0: Computacao para Informatica",
"disc 1: Banco de Dados I",
"disc 2: Banco de Dados II",
"disc 3: Arquitetura de Computadores I"
};
int i;

printf("Qual a disciplina? "); scanf("%d", &i);


puts(disciplinas[i]);

A declaração abaixo ilustra como declarar e inicializar uma matriz de três linhas por quatro
colunas de números reais.

float mat[][4] = { 1.0, 2.0, 3.0, 4.0, // linha 1

8.0, 9.0, 7.5, 6.0, // linha 2

0.0, 0.1, 0.5, 0.4 }; // linha 3

Fonte: http://equipe.nce.ufrj.br/adriano/c/apostila/vetor.htm

Você também pode gostar