Course Content
C Structs
C Structs
Nested Structs
In addition to the basic primitive data types such as int or char, arrays and pointers, you can use other structures as members within your structure.
Several methods can be used:
- Declare and define the
NestedStruct
structure inside theOuterStruct
structure (embedded nested struct);
- Declare the
NestedStruct
structure separately from theOuterStruct
structure, create an instance of theNestedStruct
structure inside theOuterStruct
structure (separate nested struct).
The difference is that when a nested structure is declared separately, that structure can be used in many other structures.
If an instance of a nested structure was created outside of an external structure, then the structure will not be nested.
You can access the fields of a nested structure directly through the "." operator or through a pointer and the -> operator.
An example of using nested structures:
main
#include <stdio.h> // structure for address struct Address { char street[50]; char city[50]; char index[10]; }; // structure for person struct Person { char name[50]; int age; struct Address address; // nested structure }; int main() { // initialization of Person structure struct Person person = { "Sherlock Holmes", 27, {"Baker Street", "London", "221B"} }; // display information about the person and his address printf("Name: %s\n", person.name); printf("Age: %d\n", person.age); printf("Address: %s, %s, %s\n", person.address.index, person.address.street, person.address.city); return 0; }
Task
- Define a nested structure
education
; - Create an instance of the
Student
structure; - Display the student's name and age;
- Display information about the student’s education.
Thanks for your feedback!
Nested Structs
In addition to the basic primitive data types such as int or char, arrays and pointers, you can use other structures as members within your structure.
Several methods can be used:
- Declare and define the
NestedStruct
structure inside theOuterStruct
structure (embedded nested struct);
- Declare the
NestedStruct
structure separately from theOuterStruct
structure, create an instance of theNestedStruct
structure inside theOuterStruct
structure (separate nested struct).
The difference is that when a nested structure is declared separately, that structure can be used in many other structures.
If an instance of a nested structure was created outside of an external structure, then the structure will not be nested.
You can access the fields of a nested structure directly through the "." operator or through a pointer and the -> operator.
An example of using nested structures:
main
#include <stdio.h> // structure for address struct Address { char street[50]; char city[50]; char index[10]; }; // structure for person struct Person { char name[50]; int age; struct Address address; // nested structure }; int main() { // initialization of Person structure struct Person person = { "Sherlock Holmes", 27, {"Baker Street", "London", "221B"} }; // display information about the person and his address printf("Name: %s\n", person.name); printf("Age: %d\n", person.age); printf("Address: %s, %s, %s\n", person.address.index, person.address.street, person.address.city); return 0; }
Task
- Define a nested structure
education
; - Create an instance of the
Student
structure; - Display the student's name and age;
- Display information about the student’s education.
Thanks for your feedback!
Nested Structs
In addition to the basic primitive data types such as int or char, arrays and pointers, you can use other structures as members within your structure.
Several methods can be used:
- Declare and define the
NestedStruct
structure inside theOuterStruct
structure (embedded nested struct);
- Declare the
NestedStruct
structure separately from theOuterStruct
structure, create an instance of theNestedStruct
structure inside theOuterStruct
structure (separate nested struct).
The difference is that when a nested structure is declared separately, that structure can be used in many other structures.
If an instance of a nested structure was created outside of an external structure, then the structure will not be nested.
You can access the fields of a nested structure directly through the "." operator or through a pointer and the -> operator.
An example of using nested structures:
main
#include <stdio.h> // structure for address struct Address { char street[50]; char city[50]; char index[10]; }; // structure for person struct Person { char name[50]; int age; struct Address address; // nested structure }; int main() { // initialization of Person structure struct Person person = { "Sherlock Holmes", 27, {"Baker Street", "London", "221B"} }; // display information about the person and his address printf("Name: %s\n", person.name); printf("Age: %d\n", person.age); printf("Address: %s, %s, %s\n", person.address.index, person.address.street, person.address.city); return 0; }
Task
- Define a nested structure
education
; - Create an instance of the
Student
structure; - Display the student's name and age;
- Display information about the student’s education.
Thanks for your feedback!
In addition to the basic primitive data types such as int or char, arrays and pointers, you can use other structures as members within your structure.
Several methods can be used:
- Declare and define the
NestedStruct
structure inside theOuterStruct
structure (embedded nested struct);
- Declare the
NestedStruct
structure separately from theOuterStruct
structure, create an instance of theNestedStruct
structure inside theOuterStruct
structure (separate nested struct).
The difference is that when a nested structure is declared separately, that structure can be used in many other structures.
If an instance of a nested structure was created outside of an external structure, then the structure will not be nested.
You can access the fields of a nested structure directly through the "." operator or through a pointer and the -> operator.
An example of using nested structures:
main
#include <stdio.h> // structure for address struct Address { char street[50]; char city[50]; char index[10]; }; // structure for person struct Person { char name[50]; int age; struct Address address; // nested structure }; int main() { // initialization of Person structure struct Person person = { "Sherlock Holmes", 27, {"Baker Street", "London", "221B"} }; // display information about the person and his address printf("Name: %s\n", person.name); printf("Age: %d\n", person.age); printf("Address: %s, %s, %s\n", person.address.index, person.address.street, person.address.city); return 0; }
Task
- Define a nested structure
education
; - Create an instance of the
Student
structure; - Display the student's name and age;
- Display information about the student’s education.