3d array structure layers rows columns visualization
Last updated on 2026-04-26T19:58:21.172Z

Multi-Dimensional Arrays in C (3D-2D-1D Arrays): Syntax, Examples & Real Use Cases (2026 Guide)

If you're just starting your journey with C programming, you've probably heard about arrays and structures. But how do they work together? When should you use one over the other? And what happens when you nest structures inside structures?

In this beginner-friendly guide, we'll explore:

  • One-dimensional arrays – Storing lists of data

  • Two-dimensional arrays – Working with tables and matrices

  • Structures – Grouping different data types together

  • Nested structures – Creating complex data relationships

By the end, you'll understand how to use all three concepts confidently in your C programs.


Part 1: One-Dimensional Arrays – The Basics

What Is a One-Dimensional Array?

Think of a one-dimensional array as a row of lockers. Each locker has an index and holds one item.

Index:    [0]   [1]   [2]   [3]   [4]
Value:     1     2     3     4     5

Example Code

#include <stdio.h>

int main() {
    int oneDimArray[5] = {1, 2, 3, 4, 5};

    printf("One-Dimensional Array: ");
    for (int i = 0; i < 5; i++) {
        printf("%d ", oneDimArray[i]);
    }

    return 0;
}

Key Points

  • Index starts from 0

  • Memory is contiguous

  • Best for simple lists


Part 2: Two-Dimensional Arrays – Tables and Matrices

What Is a Two-Dimensional Array?

A 2D array is like a table with rows and columns.

        Column 0  Column 1  Column 2  Column 3
Row 0:     1        2        3        4
Row 1:     5        6        7        8
Row 2:     9       10       11       12

Example Code

#include <stdio.h>

int main() {
    int twoDimArray[3][4] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d ", twoDimArray[i][j]);
        }
        printf("\n");
    }

    return 0;
}

What Is a Three-Dimensional Array?

A 3D array is like a collection of multiple 2D tables stacked together.

Think of it like:

  •  A stack of books
  • A cube made of small blocks
  • Frames in a video (each frame = 2D image)

 


 

Layer 0:
1 2
3 4

Layer 1:
5 6
7 8

Example Code

#include <stdio.h>

int main() {
    // Declaration and initialization of 3D array
    int arr[2][2][2] = {
        { {1, 2}, {3, 4} },
        { {5, 6}, {7, 8} }
    };

    // Printing elements
    for (int i = 0; i < 2; i++) {           // Layers
        printf("Layer %d:
", i);
        for (int j = 0; j < 2; j++) {       // Rows
            for (int k = 0; k < 2; k++) {   // Columns
                printf("%d ", arr[i][j][k]);
            }
            printf("
");
        }
        printf("
");
    }

    return 0;
}

Output

Layer 0:
1 2
3 4

Layer 1:
5 6
7 8

Key Points

  • Syntax: datatype array[x][y][z]

  • Access using three indices: arr[i][j][k]

  • Stored in contiguous memory (row-major order)

  • Useful for 3D data like cubes, simulations, and games

Part 3: Structures – Grouping Different Data Types

What Is a Structure?

Structures allow you to group different data types together.

Example Code

#include <stdio.h>
#include <string.h>

struct Student {
    char name[50];
    int age;
};

int main() {
    struct Student person1;

    strcpy(person1.name, "developer Indian");
    person1.age = 25;

    printf("Name: %s\n", person1.name);
    printf("Age: %d\n", person1.age);

    return 0;
}

Part 4: Nested Structures

What Is a Nested Structure?

A nested structure is a structure inside another structure.

Example Code

#include <stdio.h>
#include <string.h>

struct Date {
    int day;
    int month;
    int year;
};

struct Student {
    char name[50];
    int age;
    struct Date birthdate;
};

int main() {
    struct Student person1;

    strcpy(person1.name, "developer Indian");
    person1.age = 25;

    person1.birthdate.day = 15;
    person1.birthdate.month = 7;
    person1.birthdate.year = 1998;

    printf("Name: %s\n", person1.name);
    printf("Age: %d\n", person1.age);
    printf("Birthdate: %d/%d/%d\n",
           person1.birthdate.day,
           person1.birthdate.month,
           person1.birthdate.year);

    return 0;
}

Arrays vs Structures

Feature Arrays Structures
Data types Same type Different types
Access Index Dot operator
Use case Lists Records

Real-World Example

struct Address {
    char city[50];
    int pincode;
};

struct Student {
    int rollNo;
    char name[50];
    struct Address addr;
    int marks[5];
};

 Summary

  • Arrays store multiple values of the same type

  • Structures store multiple values of different types

  • Nested structures model complex data


What's Next?

  • Pointers to structures

  • Dynamic memory allocation

  • Linked lists


FAQ

Q: Can I have an array of structures?
Yes, e.g., struct Student batch[100];

Q: Can a structure contain an array?
Yes, structures can include arrays as members.


Final Words

Arrays and structures are essential for organizing data in C. Master them to build efficient programs.