# Structures — C Programming

Source: https://www.geekswithgeeks.com/en/c/c-structs

> Group related values of different types under one name.

## A custom, composite type

A `struct` bundles multiple fields — possibly of different types — into one unit, unlike an array which holds same-typed values.

## Define, create, access

Fields are accessed with the dot operator `.`.

```c
struct Point {
    int x;
    int y;
};

int main(void) {
    struct Point p1 = {3, 4};
    printf("(%d, %d)\n", p1.x, p1.y);
    p1.x = 10;
    return 0;
}
```

Output:

```
(3, 4)
```

## Structs can nest

A struct field can itself be another struct — access chains with multiple dots.

```c
struct Address { char city[20]; };
struct Person {
    char name[20];
    struct Address addr;
};

struct Person p = {"Riya", {"Pune"}};
printf("%s lives in %s\n", p.name, p.addr.city);
```

Output:

```
Riya lives in Pune
```
