Ponteiros para Structs
A linguagem de programação C permite criar ponteiros não apenas para tipos de dados regulares, mas também para estruturas (já que uma estrutura é um tipo de dado personalizado).
A declaração e inicialização de um ponteiro é feita assim:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Se <name_of_pointer> é um ponteiro para uma estrutura,
então *(<name_of_pointer>) é a própria estrutura.
Para acessar os campos de uma estrutura através de um ponteiro, deve-se usar o operador ->.
-> é um análogo do operador de acesso à estrutura .
main.c
12345678910111213141516171819202122#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }
Este programa demonstra como trabalhar com uma estrutura Point que armazena duas coordenadas, x e y. Na função main, uma variável p1 é criada e recebe valores para as coordenadas, em seguida um ponteiro para essa estrutura é inicializado. Utilizando o operador ->, o programa acessa os campos da estrutura por meio do ponteiro e exibe as coordenadas do ponto na tela.
Swipe to start coding
Você tem um estudante com notas em 3 disciplinas: Math, Physics e Programming.
Sua tarefa é calcular a média das notas do estudante e determinar se ele aprovou no curso.
Dentro da função calculateAverageAndCheck:
- Acesse cada nota da disciplina usando o ponteiro.
- Some as três notas para encontrar o total.
- Divida o total por
3.0para calcular a média. - Compare o resultado com o limite de aprovação de 60.
- Se a média for maior ou igual a 60, retorne
true(o estudante foi aprovado). - Caso contrário, retorne
false(o estudante foi reprovado).
Example
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Incrível!
Completion taxa melhorada para 4.35
Ponteiros para Structs
Deslize para mostrar o menu
A linguagem de programação C permite criar ponteiros não apenas para tipos de dados regulares, mas também para estruturas (já que uma estrutura é um tipo de dado personalizado).
A declaração e inicialização de um ponteiro é feita assim:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Se <name_of_pointer> é um ponteiro para uma estrutura,
então *(<name_of_pointer>) é a própria estrutura.
Para acessar os campos de uma estrutura através de um ponteiro, deve-se usar o operador ->.
-> é um análogo do operador de acesso à estrutura .
main.c
12345678910111213141516171819202122#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }
Este programa demonstra como trabalhar com uma estrutura Point que armazena duas coordenadas, x e y. Na função main, uma variável p1 é criada e recebe valores para as coordenadas, em seguida um ponteiro para essa estrutura é inicializado. Utilizando o operador ->, o programa acessa os campos da estrutura por meio do ponteiro e exibe as coordenadas do ponto na tela.
Swipe to start coding
Você tem um estudante com notas em 3 disciplinas: Math, Physics e Programming.
Sua tarefa é calcular a média das notas do estudante e determinar se ele aprovou no curso.
Dentro da função calculateAverageAndCheck:
- Acesse cada nota da disciplina usando o ponteiro.
- Some as três notas para encontrar o total.
- Divida o total por
3.0para calcular a média. - Compare o resultado com o limite de aprovação de 60.
- Se a média for maior ou igual a 60, retorne
true(o estudante foi aprovado). - Caso contrário, retorne
false(o estudante foi reprovado).
Example
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
Solução
Obrigado pelo seu feedback!
single