UM VETOR EM UMA FUNÇÃO UTILIZANDO ARITMÉTICA DE PONTEIROS?
Por: MariaAllana • 27/6/2020 • Trabalho acadêmico • 451 Palavras (2 Páginas) • 234 Visualizações
um vetor em uma função utilizando aritmética de ponteiros?
Bom para isso acontecer, é preciso criar uma variável qualquer na função principal (main) dizendo o tamanho da mesma. Logo após, cria o vetor, para passar um vetor para a função, colocar só o nome do vetor chamado da main e variável do tamanho, mas lá no paramentro tem que colocar o nome do vetor com os [], ou seja, diz que o paramentro e um vetor e só ler um vetor em uma função usando aritmética de ponteiros, para isto, basta colocar o nome do vetor e colocar o sinal do operador (+).
Exemplo:
Int v[2];
Int i;
For(i=0; i<3;i++){
Scanf(“%d”, v+i);
Como imprimir os valores de um vetor utilizando aritmética de ponteiros?
Utilizamos só a aritmética para ler, ou seja, nós não usamos o “*”, quando usamos o asterisco queremos dizer para o computador que quero acessar o conteúdo que está armazenado naquela variável que o ponteiro está acessando;
Exemplo:
Int v[2];
Int i;
For(i=0; i<2; i++){
Scanf(“%d”, v+i);
}
For(i=0; i<2; i++){
Printf(“%d”, *(v+i));
No primeiro for, ele está acessando as posições do vetor, já no segundo for ele está acessando o conteúdo do vetor.
O que ocorre quando se incrementa um ponteiro?
Para incrementar um vetor do ponteiro resultante tem que apontar para dentro da área reservada para o vetor. Se “P” representa um ponteiro para um inteiro, p+1 representa um ponteiro para o próximo valor armazenando na memória, isto é, o vetor de P é incrementado de 4 (mais uma vez assumindo que um inteiro tem 4 bytes).
O que são e como funciona os vetores de ponteiros?
Os vetores de ponteiros, eles podem armazenar outros vetores dentro de um vetor utilizando o operador “*”.
O tipo do vetor e um ponteiro para o tipo do elemento do vetor, por exemplo: int v*[2], nesse caso o tipo de v é int *.
sendo assim como V represente um endereço de memória, se quisermos armazenar o valor de V em outra variável, esta deve ser declarado como ponteiro para inteiro, por exemplo:
Int main(){
Int v1[3]; //aqui como pode ver, declaramos 2 vetores do tipo inteiro.
int v2[3];
int *v[2]; // aqui tem um ponteiro de vetor, esse vetor é o que armazena os dois vetores anteriores
v[0] = v1; // já aqui declaramos a posição dos vetores armazenados, ou seja, ai está dizendo
v[1] = v2; que o v1 vai ser armazenados na posição inicial do vetor V e o vetor v2 vai ser armazenado na segunda posição V.
Exercício pratico:
#include
int main(){
printf("digite as 3 notas dos tres alunos: \n");
int i;
float a[3];
float b[3];
float c[3];
float *v[3];
v[0] = a;
v[1] = b;
v[2] = c;
for(i=0;i<3;i++){
scanf("%f %f %f", &v[i][0],&v[i][1],&v[i][2]);
}
float media;
for(i=0;i<3;i++){
media = ((v[i][0] * 2) + (v[i][1] * 3) + (v[i][2] * 5))/10;
printf("MEDIA = %.1f\n", media);
}
return 0;
}
...