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])