Ed. Técnica, perguntado por luizzz07, 1 ano atrás

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 Usuário anônimo
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)

leonidasviniciu: ta errado mano
leonidasviniciu: essa não é
leonidasviniciu: INCORRETO (EU ERREI) 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
eicleberoxejbt: b. 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. Correto
Respondido por yurigrivarolli
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....

ingridfabriss: Correto!
Perguntas interessantes