Uma das facilidades da programação em linguagem C é possibilidade de manuseio dos endereços das variáveis, através dos ponteiros.
Considere a construção de um programa embarcado em linguagem C para o ATmega328, onde a variável tipo ponteiro, unsigned int *PontVet1;, deve ser usada para acessar o terceiro elemento do vetor unsigned int Vet1[10];. Utilizando a variável unsigned int Var1;, qual das alternativas abaixo representa a sintaxe e comandos corretos para esta ação?
Escolha uma:
a. PontVet1 = &Vet1[3]; PontVet1++; Var1 = PontVet1;. O primeiro comando serve para fazer o ponteiro apontar para o terceiro elemento do vetor. O segundo comando incrementa o ponteiro para ele apontar para o próximo elemento do vetor. O seguinte busca o conteúdo do endereço apontado por PontVet1 e carrega para a variável Var1. (Incorreto)
b. Var1 = Vet1[*PontVet1+3];, o que significa que o conteúdo do elemento do vetor Vet1 indicado pelo índice PontVet1 será transferido para a Var1.
c. PontVet1 = *Vet1[2]; Var1 = &PontVet1;. O primeiro comando serve para fazer o ponteiro apontar para o terceiro elemento do vetor. O seguinte busca o conteúdo do endereço apontado por PontVet1 e carrega para a variável Var1.
d. PontVet1 = Vet1[3]; Var1 = &PontVet1;. O primeiro comando serve para fazer o ponteiro apontar para o terceiro elemento do vetor. O último comando transfere o conteúdo do endereço apontado por PontVet1 para a variável Var1.
e. PontVet1 = Vet1; PontVet1+=2; Var1 = *PontVet1;. O primeiro comando serve para fazer o ponteiro apontar para o primeiro elemento do vetor. O segundo comando incrementa o ponteiro em dois endereços, fazendo ele apontar para o terceiro elemento do vetor. O último transfere o conteúdo do endereço apontado por PontVet1 para a variável Var1.
Soluções para a tarefa
Respondido por
17
a. PontVet1 = *Vet1[2]; Var1 = &PontVet1;. O primeiro comando serve para fazer o ponteiro apontar para o terceiro elemento do vetor. O seguinte busca o conteúdo do endereço apontado por PontVet1 e carrega para a variável Var1.
(Incorreto)b. Var1 = Vet1[*PontVet1+3];, o que significa que o conteúdo do elemento do vetor Vet1 indicado pelo índice PontVet1 será transferido para a Var1. (Incorreto)
(Incorreto)b. Var1 = Vet1[*PontVet1+3];, o que significa que o conteúdo do elemento do vetor Vet1 indicado pelo índice PontVet1 será transferido para a Var1. (Incorreto)
leonidasviniciu:
ta errado mano
Respondido por
59
Pontveret=Vert1;PontVert1+=2;Var1=*PontVert1; o primeiro comando serve para fazer o ponteiro para o primeiro elemento do vetor. o segundo comando incrementa o ponteiro em dois enderenços....
Perguntas interessantes