Punteros a Structs
El lenguaje de programación C permite crear punteros no solo a tipos de datos regulares sino también a estructuras (ya que una estructura es un tipo de dato personalizado).
La declaración e inicialización de un puntero se realiza así:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Si <name_of_pointer> es un puntero a una estructura,
entonces *(<name_of_pointer>) es la propia estructura.
Para acceder a los campos de una estructura a través de un puntero, se debe utilizar el operador ->.
-> es un análogo del operador de acceso a estructuras .
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 muestra cómo trabajar con una estructura Point que almacena dos coordenadas, x y y. En la función main, se crea una variable p1 y se le asignan valores de coordenadas, luego se inicializa un puntero a esta estructura. Utilizando el operador ->, el programa accede a los campos de la estructura a través del puntero y muestra las coordenadas del punto en pantalla.
Swipe to start coding
Se tiene un estudiante con calificaciones en 3 materias: Matemáticas, Física y Programación.
La tarea consiste en calcular el promedio de calificaciones del estudiante y determinar si aprobó el curso.
Dentro de la función calculateAverageAndCheck:
- Acceder a la calificación de cada materia utilizando el puntero.
- Sumar las tres calificaciones para obtener el puntaje total.
- Dividir el total entre
3.0para calcular el promedio. - Comparar el resultado con el umbral de aprobación de 60.
- Si el promedio es mayor o igual a 60, devolver
true(el estudiante aprobó). - En caso contrario, devolver
false(el estudiante no aprobó).
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 |
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Genial!
Completion tasa mejorada a 4.35
Punteros a Structs
Desliza para mostrar el menú
El lenguaje de programación C permite crear punteros no solo a tipos de datos regulares sino también a estructuras (ya que una estructura es un tipo de dato personalizado).
La declaración e inicialización de un puntero se realiza así:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Si <name_of_pointer> es un puntero a una estructura,
entonces *(<name_of_pointer>) es la propia estructura.
Para acceder a los campos de una estructura a través de un puntero, se debe utilizar el operador ->.
-> es un análogo del operador de acceso a estructuras .
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 muestra cómo trabajar con una estructura Point que almacena dos coordenadas, x y y. En la función main, se crea una variable p1 y se le asignan valores de coordenadas, luego se inicializa un puntero a esta estructura. Utilizando el operador ->, el programa accede a los campos de la estructura a través del puntero y muestra las coordenadas del punto en pantalla.
Swipe to start coding
Se tiene un estudiante con calificaciones en 3 materias: Matemáticas, Física y Programación.
La tarea consiste en calcular el promedio de calificaciones del estudiante y determinar si aprobó el curso.
Dentro de la función calculateAverageAndCheck:
- Acceder a la calificación de cada materia utilizando el puntero.
- Sumar las tres calificaciones para obtener el puntaje total.
- Dividir el total entre
3.0para calcular el promedio. - Comparar el resultado con el umbral de aprobación de 60.
- Si el promedio es mayor o igual a 60, devolver
true(el estudiante aprobó). - En caso contrario, devolver
false(el estudiante no aprobó).
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 |
Solución
¡Gracias por tus comentarios!
single