A structure and a union are both user-defined data types in C, used for grouping
different types of variables together under a single name. They differ in how they
manage memory, which affects how the data is stored and accessed.
1. Structures in C
A structure is a collection of variables of different data types grouped together
under one name. Each variable within the structure is known as a member, and
members can be of different data types, including arrays, pointers, and other
structures.
Declaration and Initialization of a Structure
To define a structure, you use the struct keyword. Here’s how you can define and
initialize a structure in C:
#include <stdio.h>
struct Person {
char name[50];
int age;
float height;
};
int main() {
// Declaring and initializing a structure variable
struct Person person1 = {"Alice", 25, 5.6};
// Accessing structure members
printf("Name: %s\n", person1.name);
printf("Age: %d\n", person1.age);
printf("Height: %.2f\n", person1.height);
return 0;
}
, In this example:
struct Person is the structure definition.
person1 is a variable of type struct Person.
The members name, age, and height are accessed using the dot operator
(.).
Accessing Structure Members
You can access the members of a structure using the dot operator (.) if you have
an instance of the structure. For example, person1.name accesses the name
member of the person1 instance.
To access members of a structure through a pointer, you would use the arrow
operator (->).
Example using a pointer to a structure:
#include <stdio.h>
struct Person {
char name[50];
int age;
float height;
};
int main() {
struct Person person1 = {"Bob", 30, 5.9};
struct Person *ptr = &person1;
// Accessing structure members via pointer
printf("Name: %s\n", ptr->name);
printf("Age: %d\n", ptr->age);
printf("Height: %.2f\n", ptr->height);
return 0;
}