Darsliklar C Struktura

C C Struktura

Struktura (struct) — turli turdagi ma’lumotlarni bitta yaxlit birlikka jamlaydigan tuzilma. C’da alohida obyekt yoki sinf yo’q, biroq struktura ularning vazifasini qisman bajaradi: bir foydalanuvchining ismi, yoshi va bahosini bitta struct da saqlaysiz. Bu C’da murakkab ma’lumotlar bilan ishlashning asosidir.

Struktura (struct)turli turdagi bir necha o’zgaruvchini (maydonlarni) bitta nom ostida birlashtiradigan foydalanuvchi belgilagan ma’lumot turi.

Struktura e’lon qilish

Struktura struct kalit so’zi bilan e’lon qilinadi va maydonlarni o’z ichiga oladi:

#include <stdio.h>

struct Foydalanuvchi {
    char ism[50];
    int yosh;
};

int main(void) {
    struct Foydalanuvchi u;
    strcpy(u.ism, "Master Sherkulov");
    u.yosh = 30;
    printf("%s, %d yosh\n", u.ism, u.yosh);
    return 0;
}
Master Sherkulov, 30 yosh

struct Foydalanuvchi — yangi ma’lumot turini belgiladi. u — shu turdagi o’zgaruvchi (obyektga o’xshash). Maydonlarga nuqta (.) orqali murojaat qilinadi. (Diqqat: strcpy uchun string.h kerak.)

Ishga tushirishda qiymat berish

Strukturani yaratishning o’zidayoq maydonlarni to’ldirish mumkin:

#include <stdio.h>

struct Mahsulot {
    char nomi[30];
    int narxi;
};

int main(void) {
    struct Mahsulot telefon = {"iPhone", 12000000};
    printf("%s — %d\n", telefon.nomi, telefon.narxi);
    return 0;
}
iPhone — 12000000

{"iPhone", 12000000} — maydonlarni tartib bo’yicha to’ldirdi. Bu strukturani bir qatorda to’liq tayyor holga keltiradi.

typedef bilan qisqartirish

Har safar struct yozib o’tirmaslik uchun typedef ishlatiladi:

#include <stdio.h>

typedef struct {
    char nomi[30];
    int narxi;
} Mahsulot;

int main(void) {
    Mahsulot telefon = {"Noutbuk", 8500000};
    printf("%s — %d\n", telefon.nomi, telefon.narxi);
    return 0;
}
Noutbuk — 8500000

typedef tufayli endi struct Mahsulot o’rniga shunchaki Mahsulot yozish kifoya. Bu kodni tozaroq qiladi va professional C kodida keng ishlatiladi.

Struktura va massiv

Strukturalar massivda saqlanib, ko’p obyektni ifodalashi mumkin:

#include <stdio.h>

typedef struct {
    char nomi[20];
    int ball;
} Talaba;

int main(void) {
    Talaba talabalar[2] = {{"Farrux", 95}, {"Aziz", 80}};
    for (int i = 0; i < 2; i++) {
        printf("%s: %d\n", talabalar[i].nomi, talabalar[i].ball);
    }
    return 0;
}
Farrux: 95
Aziz: 80

Bu — strukturalar massivi, ya’ni bir necha talabani bitta ro’yxatda saqlash. Real ma’lumotlar bilan ishlashda juda foydali.

Xulosa

Bu bo’limda struktura (struct) e’lon qilish, maydonlarga murojaat (.), typedef bilan qisqartirish va strukturalar massivini ko’rib chiqdik. Struktura — C’da murakkab ma’lumotlarni jamlashning asosiy vositasi. Keyingi darsda struktura xossalarini chuqurroq ko’rib chiqamiz.