Pointers to Structs
The C programming language allows you to create pointers not only to regular data types but also to structures (since a structure is a custom data type).
Declaration and initialization of a pointer looks like this:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
If <name_of_pointer>
is a pointer to a structure,
then *(<name_of_pointer>)
is the structure itself.
To access the fields of a structure through a pointer, you must use the -> operator.
Note
"->" is an analogue of the structure access operator
.
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; }
Swipe to start coding
- Declare structure
Human
which contains two fieldsname
andage
; - Initialize the structure
worker
and fill the fields; - Declare and initialize a pointer
ptr
to aworker
; - Display information about the
worker
.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Opsummér dette kapitel
Explain code
Explain why doesn't solve task
Awesome!
Completion rate improved to 4.17
Pointers to Structs
Stryg for at vise menuen
The C programming language allows you to create pointers not only to regular data types but also to structures (since a structure is a custom data type).
Declaration and initialization of a pointer looks like this:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
If <name_of_pointer>
is a pointer to a structure,
then *(<name_of_pointer>)
is the structure itself.
To access the fields of a structure through a pointer, you must use the -> operator.
Note
"->" is an analogue of the structure access operator
.
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; }
Swipe to start coding
- Declare structure
Human
which contains two fieldsname
andage
; - Initialize the structure
worker
and fill the fields; - Declare and initialize a pointer
ptr
to aworker
; - Display information about the
worker
.
Løsning
Tak for dine kommentarer!
Awesome!
Completion rate improved to 4.17single