Skip to main content

9-dars. Struct and Union

Darsning Maqsadlari:

  • Struktura va union tushunchalarini tushunish.
  • Ularning e'lon qilinishi va hotiradan joy ajratilishi haqida bilish.
  • Har bir turdagi ma'lumotlar tuzilmalari (struktura va union) o'rtasidagi farqni o'rganish.

Ma'lumot Tizimlari

Dasturlashda biz ma'lumotlarni saqlash va boshqarish uchun turli xil tuzilmalarni ishlatamiz. Eng ko'p ishlatiladigan tuzilmalar — bu struktura va union. Ikkisi ham bir yoki bir nechta o'zgaruvchilarni bir joyda saqlash imkonini beradi, ammo ular turli yo'llar bilan ishlaydi.


Struktura

Struktura — bu bir yoki bir nechta o'zgaruvchilarni (maydonlar) birlashtiruvchi ma'lumot tuzilmasi. Har bir maydon o'z turiga ega va alohida joy ajratadi.

E'lon Qilish

Strukturani e'lon qilish sintaksisi quyidagicha:

struct Talaba {
char ism[50];
int yosh;
float ball;
};

Hotiradan Joy Ajratilishi

Struktura uchun joy ajratilganda, har bir maydon o'z o'lchoviga ko'ra joy oladi. Misol uchun, char 1 bayt, int 4 bayt, float esa 4 bayt joy oladi. Yuqoridagi misolda strukturaning umumiy hajmi quyidagicha bo'ladi:

  • char ism[50] - 50 bayt
  • int yosh - 4 bayt
  • float ball - 4 bayt

Umumiy hajm = 50 + 4 + 4 = 58 bayt

Foydalanish Usuli

Strukturani yaratganingizdan so'ng, undan foydalanish uchun yangi o'zgaruvchi e'lon qilinadi:

struct Talaba talaba1;

Endi biz talaba1 o'zgaruvchisi orqali strukturaga kirishimiz mumkin:

strcpy(talaba1.ism, "Ali");
talaba1.yosh = 20;
talaba1.ball = 85.5;

Struktura ma'lumotlarni bir joyda saqlashga yordam beradi va ularni boshqarishni osonlashtiradi.


Union

Union — bu ham bir nechta o'zgaruvchilarni bir joyda saqlash imkonini beruvchi ma'lumot tuzilmasi, lekin bu erda faqat bir vaqtning o'zida bitta maydon ishlatiladi. Yani, union o'zgaruvchilarining har biri uchun joy ajratmaydi, faqat eng katta maydon uchun joy ajratadi.

E'lon Qilish

Unionni e'lon qilish sintaksisi quyidagicha:

union Malumot {
int raqam;
char harf;
float ball;
};

Hotiradan Joy Ajratilishi

Unionda joy ajratilishi quyidagicha:

  • int raqam - 4 bayt
  • char harf - 1 bayt
  • float ball - 4 bayt

Umumiy hajm = 4 bayt (eng katta maydon).

Foydalanish Usuli

Uniondan foydalanish quyidagicha:

union Malumot malumot1;
malumot1.raqam = 10;

Endi ma'lumot1.raqam maydoni ishlatiladi. Agar biz ma'lumot1.harf ga qiymat beradigan bo'lsak, ma'lumot1.raqam ma'lumoti yo'qoladi.

Union — ma'lumotlar turini bir vaqtning o'zida saqlash uchun samarali, ammo ehtiyotkorlikni talab qiladigan tuzilma.


Struktura va Union o'rtasidagi Farq

XususiyatStrukturaUnion
Hotira ajratilishiHar bir maydon uchun alohida joyFaqat eng katta maydon uchun joy
Bir vaqtning o'zida foydalanishBarcha maydonlarni ishlatish mumkinFaqat bitta maydonni ishlatish mumkin
Ma'lumotlarni saqlashMa'lumotlarni saqlash uchun qulayTezkor, ammo ehtiyotkorlik kerak

Xulosa

Struktura va union dasturlashda muhim ma'lumot tuzilmalari hisoblanadi. Struktura bir vaqtning o'zida bir nechta maydonlarni saqlash imkonini beradi, union esa faqat bitta maydonni saqlash imkoniyatiga ega. Ularni to'g'ri ishlatish dasturiy ta'minotning samaradorligini oshirishga yordam beradi.


Savollar:

  1. Struktura va union o'rtasidagi asosiy farq nima?
  2. Struktura qanday qilib bir vaqtning o'zida bir nechta maydonni saqlaydi?
  3. Unionda joy ajratilishi qanday amalga oshiriladi?
  4. Qachon struktura, qachon esa union ishlatish kerak?