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; }