Em parte de um código em C para cadastro de mercadorias de um supermercado, foi criada um struct para armazenar os campos "código" e "preço" dos produtos, definida conforme abaixo:
struct Produto {
int codigo;
float preco;
};
Um ponteiro para uma struct deste tipo foi criado com a instrução abaixo:
struct Produto *b;
Qual das alternativas acessa corretamente o campo preco?
A/ b> preco;
B/ b->preco;
C/ (*b)->preco;
D/ *b->preco;
E/ b.preco;
Soluções para a tarefa
A alternativa que acessa corretamente o campo preco é a letra B: b->preco.
Ponteiro em Struct
Uma struct é um tipo de dado conhecido como registro que agrupa variáveis de diferentes tipos sob um mesmo tipo de dado, criando um novo tipo.
Dessa forma, também é possível criar ponteiros do tipo de uma struct para criar esses ponteiros basta declarar o tipo da struct com um asterisco à frente do nome:
- struct Produto *b;
Para acessar o dado de uma variável do tipo do registro comum basta colocar o nome da variável, o ponto (.) e o nome do elemento que deseja acessar da maneira: b.preco. Contudo, quando estamos falando de um ponteiro de struct devemos usar o -> no lugar do ponto. Dessa forma, o operador -> irá deferenciar o ponteiro e o elemento que deseja ser acessado.
- b->preco
A forma (*b).preco é equivalente a b->preco
Mais exercícios sobre struct em:
https://brainly.com.br/tarefa/49576849
Mais exercício sobre ponteiro em:
https://brainly.com.br/tarefa/19729846
#SPJ1