Vetores e Matrizes

Propaganda
Definição
 Uma matriz é uma coleção de variáveis do mesmo tipo
que é referenciada por um nome comum.
 Em C, todas as matrizes consistem em posições
contíguas na memória.
 Endereço mais baixo: primeiro elemento; mais alto:
último elemento
Matrizes
Unidimensionais
(Vetores)
 Declaração: tipo nome_var[tamanho];
 Exemplo: Vetor do tipo double de 12 elementos
chamado de balance:
 double balance[100];
 Índice 0 como seu primeiro elemento, portanto: char
p[10] vai de p[0] até p[9];
void main(void)
{
int x[100];
int t;
for(t=0; t<100; t++) x[t] = t;
}
 C não tem verificação de limites em matrizes, logo esta
verificação deve ficar por conta do programador.
void main(void)
{
int x[10];
int t;
for(t=0; t<100; t++) x[t] = t;
}
Vetores na Memória Principal
 Uma vez que um vetor é formado por dados do mesmo
tipo armazenados em posições contíguas na memória,
podemos visualizar de que forma isso é tratado na
memória principal num vetor char a[7];
Element
o
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
Endereço
1000
1001
1002
1003
1004
1005
1006
Passando Vetor para função
 Em C, você não pode passar um vetor inteiro como um
argumento para uma função.
 Você pode, porém, passar um ponteiro para um vetor
para uma função, especificando o nome do vetor sem
um índice:
void main(void)
{
int x[10];
func1(x);
}
Declaração de Parâmetro
void func1(int *x) //ponteiro
{
.
.
}
void func1(int x[10]) //dimensionado
{
.
.
}
void func1(int x[]) //não-dimensionado
{
.
.
}
Strings
 Apesar de não existir o tipo string propriamente dito,
um vetor de caracteres pode ser considerado como tal
 Uma string é definida como um vetor de caracteres que
é terminada por um nulo, como “\0” automaticamente
pela linguagem.
 Portanto, deve-se sempre declarar um número a mais
no tamanho quando se pensa em armazenar uma
palavra de tamanho determinado.
 Exemplo: guardar uma string de 10 caracteres
 char str[11];
Funções de Manipulação
Nome
Função
strcpy(s1,s2)
Copia s2 em s1.
strcat(s1,s2)
Concatena s2 ao final de s1.
strlen(s1)
Retorna o tamanho de s1.
strcmp(s1,s2)
Retorna 0 se s1=s2, menor que 0 se s1<s2, maior que 0 se s1>s2
strchr(s1,ch)
Retorna um ponteiro para a primeira ocorrência de ch em s1
strstr(s1,s2)
Retorna um ponteiro para a primeira ocorrência de s2 em s1.
Exemplos
Matrizes
 Declaração
 int d[10][20];
 Declaração em parâmetros de funções
 void Func1(int x[ ][10])
Download