Sda tuzilma va ittifoq oʻrtasidagi farq

Mundarija:

Sda tuzilma va ittifoq oʻrtasidagi farq
Sda tuzilma va ittifoq oʻrtasidagi farq

Video: Sda tuzilma va ittifoq oʻrtasidagi farq

Video: Sda tuzilma va ittifoq oʻrtasidagi farq
Video: Tyga - Taste (Official Video) ft. Offset 2024, Iyul
Anonim

Asosiy farq – C tilidagi tuzilma va ittifoq

Masiv - bu C tili tomonidan qo'llab-quvvatlanadigan ma'lumotlar tuzilmasi. Massiv bir xil turdagi ma'lumotlar elementlarini saqlash uchun ishlatilishi mumkin. Agar int belgilari sifatida bayonot mavjud bo'lsa [10]; u holda belgilar o'nta belgini saqlashi mumkin bo'lgan massiv bo'lib, ularning barchasi butun sonlardir. Ba'zan har xil turdagi ma'lumotlar elementlarini bir xil xotira joyida saqlash talab qilinadi. Masalan, xodimda xodimning identifikatori, ismi, bo'limi, yoshi va boshqalar bo'lishi mumkin. Ular turli xil ma'lumotlarga ega. Shuning uchun turli xil ma'lumotlar elementlarini yagona birlik sifatida saqlash usuliga ega bo'lish kerak. C dagi tuzilmalar va birlashmalar bir xil xotira joyida turli turdagi ma'lumotlar elementlarini saqlash uchun ishlatiladi. Tuzilish va birlashma o'xshashdir, lekin ular asosan xotira taqsimoti tufayli farqlanadi. Struktura o'zgaruvchisini saqlash uchun zarur bo'lgan xotira barcha a'zolarning xotira hajmining yig'indisidir. Birlashma o'zgaruvchisini saqlash uchun zarur bo'lgan xotira birlashmadagi eng katta element uchun zarur bo'lgan xotiradir. Bu C tilidagi tuzilma va ittifoq o'rtasidagi asosiy farq. Ushbu maqolada C tilidagi struktura va ittifoq o'rtasidagi farq muhokama qilinadi.

C tilidagi Struktura nima?

Tuzilish C tilida foydalanuvchi tomonidan belgilangan ma'lumotlar turidir. U har xil turdagi ma'lumotlar elementlarini birlashtirishga yordam beradi. Struktura yozuvlarni ifodalashi mumkin. Talaba student_id, student_name va hokazolarga ega bo'lishi mumkin. Har bir o'zgaruvchini alohida saqlash o'rniga, barcha bu turli ma'lumotlar elementlari struktura yordamida bitta birlikda ixcham bo'lishi mumkin. U "struct" kalit so'zi yordamida aniqlanadi. Strukturada uning barcha aʼzolariga istalgan vaqtda kirish mumkin. Quyida olingan maʼlumotlar turi Student strukturasi hosil boʻladi.

struct Student {

intstudent_id;

char student_name[20];

};

Yuqoridagi tuzilma uchun oʻzgaruvchilar quyidagicha eʼlon qilinishi mumkin.

struct Talaba talaba1, talaba2, talaba3;

Tuzilish a'zolariga kirishning ikkita usuli mavjud. Ya'ni a'zo operator (.) va struktura ko'rsatgich operatori (->) yordamida. A'zolarga structure_variable_name orqali kirish mumkin. a'zo nomi. Agar dasturchi talaba 2 ning nomiga kirishni istasa, u bayonotni printf(student2.student_name); shaklida yozishi mumkin.

Tuzilishi bilan quyidagi dasturga qarang.

C da tuzilma va ittifoq o'rtasidagi farq
C da tuzilma va ittifoq o'rtasidagi farq

01-rasm: tuzilmali C dasturi

Yuqoridagi dasturga ko'ra, Student - bu struktura. Unda student_id va student_name mavjud. Asosiy dasturda struktura tipidagi ikkita o'zgaruvchi e'lon qilinadi. Ular talaba1 va talaba2 deb ataladi. Student1 identifikatori aʼzo operatordan student1.student_id=1 sifatida foydalanib, 1-qiymat bilan tayinlanadi. "Ann" nomi qatordir. Shuning uchun u student_name a'zosiga strcpy string nusxa ko'chirish funksiyasi yordamida ko'chiriladi. Id va ism xuddi shunday tarzda student2 ga tayinlanadi. Nihoyat, bu qiymatlar a'zo operatori yordamida chop etiladi.

Tuzilish oʻzgaruvchisini saqlash uchun zarur boʻlgan xotira miqdori barcha aʼzolarning xotira hajmining yigʻindisidir. student_id 4 baytni va student_name 20 baytni (belgi uchun har bir baytdan) o'z ichiga oladi. Jami 24 bayt bu struktura talab qiladigan xotira hajmining yig‘indisidir.

C-da Union nima?

Birlashma C tilida foydalanuvchi tomonidan belgilangan ma'lumotlar turidir. U bir xil xotira joyida turli xil ma'lumotlarni saqlashga yordam beradi. Kitob kitob nomi, narx va hokazo kabi xususiyatlarga ega bo'lishi mumkin. Ularning har biri uchun o'zgaruvchilar yaratish o'rniga, birlashma yordamida barcha turli ma'lumotlar turlarini bir birlikka siqish uchun birlashmadan foydalanish mumkin. U “union” kalit so‘zi yordamida aniqlanadi. Quyida olingan ma’lumotlar birlashmasi kitobi hosil bo‘ladi.

unionBook{

belgi nomi[20];

ikki martalik narx;

};

Yuqoridagi birlashma uchun oʻzgaruvchilar quyidagicha eʼlon qilinishi mumkin.

union Kitob kitob1, kitob2;

Birlashma a'zolariga kirishning ikkita usuli mavjud. Ya'ni a'zo operator (.) va struktura ko'rsatgich operatori (->) yordamida. A'zolarga union_variable_name orqali kirish mumkin. a'zo nomi. Agar dasturchi kitob1 nomiga kirishni istasa, u bayonotni printf(book1.name); sifatida yozishi mumkin.

Kuyidagi dasturni birlashma bilan koʻring.

C_rasmdagi tuzilma va birlashma o'rtasidagi farq 02
C_rasmdagi tuzilma va birlashma o'rtasidagi farq 02

02-rasm: Birlashma yordamida C dasturi

Yuqoridagi dasturga ko’ra, Kitob ittifoqdir. Kitob1 birlashma turidagi o'zgaruvchidir. Nom va narx belgilangan qiymatlardir. Birlashmada bir vaqtning o'zida faqat bitta a'zoga kirish mumkin va boshqa barcha a'zolar axlat qiymatlariga ega bo'ladi. Id qiymati to‘g‘ri chop etilmaydi, lekin narx qiymati to‘g‘ri chop etiladi.

C tilidagi tuzilma va ittifoq o'rtasidagi asosiy farq
C tilidagi tuzilma va ittifoq o'rtasidagi asosiy farq

03-rasm: Birlashma bilan oʻzgartirilgan C dasturi

Yuqoridagi dasturga ko'ra, Kitob birlashma hisoblanadi. book1 va book2 birlashma tipidagi o'zgaruvchilardir. Birinchidan, kitob1 nomi uchun qiymat tayinlanadi va u chop etiladi. Keyin kitob2 nomi uchun qiymat tayinlanadi va u chop etiladi. Barcha a'zolar to'g'ri chop etishadi, chunki bir vaqtning o'zida bitta a'zo ishlatilmoqda. Birlashmani saqlash uchun zarur bo'lgan xotira birlashmaning eng katta elementi uchun zarur bo'lgan xotiradir. Yuqoridagi dasturda nom o'zgaruvchisi 20 baytga teng. Bu narxdan kattaroqdir. Shunday qilib, birlashma uchun ajratilgan xotira 20 bayt.

C tilidagi tuzilma va ittifoq oʻrtasidagi oʻxshashliklar qanday?

  • C tilidagi Struktura va Birlashma foydalanuvchi tomonidan belgilangan ma'lumotlar turlaridir.
  • S dagi Struktura va Birlashma har xil ma'lumotlar turlarini bir xil xotira joyida saqlash uchun ishlatilishi mumkin.

C tilidagi tuzilma va ittifoq oʻrtasidagi farq nima?

C tilidagi tuzilma va ittifoq

Struktura – bu C tilida foydalanuvchi tomonidan belgilangan maʼlumotlar turi boʻlib, u har xil turdagi maʼlumotlarni birlashtirish imkonini beradi. Union - bu C tilida foydalanuvchi tomonidan belgilangan ma'lumotlar turi bo'lib, u har xil turdagi ma'lumotlarni birlashtirish imkonini beradi.
Maxsus imkoniyatlar
Tuzilishda uning barcha a'zolariga istalgan vaqtda kirish mumkin. Birlashmada bir vaqtning oʻzida faqat bitta aʼzoga kirish mumkin va qolgan barcha aʼzolar axlat qiymatlarini oʻz ichiga oladi.
Xotira ajratish
Tuzilish oʻzgaruvchisini saqlash uchun zarur boʻlgan xotira barcha aʼzolarning xotira hajmining yigʻindisidir. Birlashma oʻzgaruvchisini saqlash uchun zarur boʻlgan xotira birlashmadagi eng katta element uchun zarur boʻlgan xotiradir.
Kalit soʻz
Tuzilishni aniqlash uchun ishlatiladigan kalit soʻz “struct”. Birlashmani aniqlash uchun kalit soʻz “birlashma”dir.

Xulosa – C tilidagi tuzilma va ittifoq

Masiv bir xil turdagi ma'lumotlar elementlarini saqlash uchun ishlatiladi. Ba'zan bir xil xotira joyida har xil turdagi ma'lumotlar elementlarini saqlash kerak bo'ladi. C dasturlash tili ushbu vazifani bajarish uchun tuzilma va birlashmani ta'minlaydi. Ikkalasi ham foydalanuvchi tomonidan belgilangan ma'lumotlar turlari. Struktura o'zgaruvchisini saqlash uchun zarur bo'lgan xotira barcha a'zolarning xotira hajmining yig'indisidir. Birlashma o'zgaruvchisini saqlash uchun zarur bo'lgan xotira birlashmadagi eng katta element uchun zarur bo'lgan xotiradir. Bu C. tilidagi struktura va birlashma o'rtasidagi farq.

Tavsiya: