Module 13: Structures, Unions, Enums & Memory Alignment

Duration: 3.5 Hours • Low-Level Data
1. struct Syntax & Access 1 / 4

Structures & Member Access: Dot (.) vs Arrow (->)

Grouping heterogeneous data types into compound objects

struct_syntax.c
typedef struct {
    uint32_t id;
    char name[32];
    double gpa;
} Student;

int main(void) {
    Student s1 = {101, "Alexander", 3.95};

    // 1. Direct variable access uses Dot (.) operator:
    printf("Student: %s, GPA: %.2f\\n", s1.name, s1.gpa);

    // 2. Pointer access uses Arrow (->) operator (*ptr).member:
    Student *ptr = &s1;
    printf("Via pointer: %s\\n", ptr->name); // Identical to (*ptr).name
    return 0;
}