MATRIZ
Resumo:
O nome de um vetor pode também ser utilizado como sendo um ponteiro para o primeiro elemento do vetor (ou seja, ele contem o endereço de seu 1o elemento). Vetores são sempre passados por referência para funções.
Exemplo de declaração de funções com ponteiros:
float f (float V1[MAX]);
Exemplo de chamada:
#define MAX 100 int main () { float a, A[MAX]; /* declaração da variável a e vetor A */ ... /* outras coisas do programa */ a = f (A); /* observe que o vetor é passado apenas pelo nome ... pois ele contem o endereco do 1o elemento */
}
Descrição:
Vimos na aula sobre vetores que o nome_do_vetor utilizado na sua declaração pode ser utilizado também como um ponteiro que aponta para o endereço da primeira posição do vetor, ou seja, o nome do vetor é também um ponteiro que contém o endereço de seu primeiro elemento.
Na linguagem C, como vetores podem ser estruturas muito grandes, o vetor é sempre passado para uma função por referência, ou seja, apenas o nome (ponteiro) do vetor é passado na chamada de uma função.
Vamos definir uma função que recebe dois vetores de tamanho e retorna o seu produto escalar.
O protótipo dessa função seria:
float produtoEscalar (float V1[MAX], float V2[MAX], int N);
A função recebe os vetores V1 e V2, e um inteiro N. Veja que cada vetor possui MAX elementos cada, e desde que , o resultado final deve ser correto. Um possível corpo para essa função seria:
float produtoEscalar (float V1[MAX], float V2[MAX], int N) { int i; float res = 0; for (i=0;