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