ساختارها (Struct) در C

گروه‌بندی داده‌های مرتبط با struct، دسترسی با نقطه و اشاره‌گر به ساختار

struct چیست؟

struct به شما اجازه می‌دهد انواع مختلف داده را که با هم مرتبط‌اند، در یک واحد گروه‌بندی کنید. مثلاً برای یک دانشجو: نام (رشته)، سن (عدد) و معدل (اعشاری).

تعریف struct

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

⚠️ نقطه‌ویرگول بعد از آکولاد بسته اجباری است!

ساخت متغیر از struct

struct Student s1;

// مقداردهی هنگام تعریف
struct Student s2 = {"Ali", 20, 18.5};

دسترسی به اعضا با نقطه

strcpy(s1.name, "Sara");
s1.age = 22;
s1.gpa = 19.2;

printf("%s is %d years old", s1.name, s1.age);

typedef برای کوتاه‌تر شدن

با typedef دیگر لازم نیست هر بار بنویسید struct Student:

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

Student s1;  // کوتاه‌تر!

آرایه‌ای از ساختارها

Student class[3] = {
    {"Ali", 20, 18.5},
    {"Sara", 22, 19.2},
    {"Reza", 21, 17.8}
};

printf("%s", class[1].name);  // Sara

اشاره‌گر به struct

برای دسترسی به اعضا از طریق اشاره‌گر از فلش -> استفاده می‌شود:

Student s1 = {"Ali", 20, 18.5};
Student *ptr = &s1;

printf("%s", ptr->name);   // با فلش
printf("%s", (*ptr).name); // معادل — با نقطه

struct به عنوان پارامتر تابع

void printStudent(Student s) {
    printf("%s - %d - %.2f", s.name, s.age, s.gpa);
}

نکات مهم

این مبحث بخشی از دوره آموزش کامل زبان C است.

ابزارهای مرتبط