Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Ponteiros para Structs | Trabalhando com Ponteiros e Structs
Dominando Structs em C

bookPonteiros 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 ->.

Note
Nota

-> é um análogo do operador de acesso à estrutura .

main.c

main.c

copy
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.

Tarefa

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:

  1. Acesse cada nota da disciplina usando o ponteiro.
  2. Some as três notas para encontrar o total.
  3. Divida o total por 3.0 para calcular a média.
  4. Compare o resultado com o limite de aprovação de 60.
  5. Se a média for maior ou igual a 60, retorne true (o estudante foi aprovado).
  6. Caso contrário, retorne false (o estudante foi reprovado).

Example

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 2
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

close

bookPonteiros 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 ->.

Note
Nota

-> é um análogo do operador de acesso à estrutura .

main.c

main.c

copy
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.

Tarefa

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:

  1. Acesse cada nota da disciplina usando o ponteiro.
  2. Some as três notas para encontrar o total.
  3. Divida o total por 3.0 para calcular a média.
  4. Compare o resultado com o limite de aprovação de 60.
  5. Se a média for maior ou igual a 60, retorne true (o estudante foi aprovado).
  6. Caso contrário, retorne false (o estudante foi reprovado).

Example

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 2
single

single

some-alt