Masyvas yra duomenys, palaikomi C kalba. Masyvas gali būti naudojamas to paties tipo duomenų elementams saugoti. Jei yra teiginys kaip int ženklai [10]; tada ženklai yra masyvas, kuriame galima laikyti dešimt ženklų, ir visi jie yra sveikieji skaičiai. Kartais toje pačioje atminties vietoje reikia saugoti skirtingų tipų duomenų elementus. Pvz., Darbuotojas gali turėti darbuotojo ID, vardą, pavardę, skyrių, amžių ir pan. Jie yra skirtingų duomenų tipų. Todėl būtina turėti metodą, kaip kaupti įvairius duomenų elementus kaip vieną vienetą. C struktūros ir unijos yra naudojamos skirtingų tipų duomenų elementams saugoti toje pačioje atminties vietoje. Struktūra ir sąjunga yra panašios, tačiau jos daugiausia skiriasi dėl atminties paskirstymo.. Atmintis, reikalinga struktūros kintamajam laikyti, yra visų narių atminties suma. Atmintis, reikalinga sąjungos kintamajam laikyti, yra atmintis, reikalinga didžiausiam sąjungos elementui. Tai yra pagrindinis skirtumas tarp struktūros ir sąjungos C. Šiame straipsnyje aptariamas skirtumas tarp struktūros ir sąjungos C.
1. Apžvalga ir svarbiausias skirtumas
2. Kas yra C struktūra?
3. Kas yra Sąjunga C
4. C struktūros ir sąjungos panašumai
5. Šalutinis palyginimas - lentelės formos struktūra C ir C atžvilgiu
6. Santrauka
Struktūra yra vartotojo apibrėžtas duomenų tipas C. Tai padeda sujungti skirtingų tipų duomenų elementus. Struktūra gali atstovauti įrašus. Studentas gali turėti studento vardą, pavardę ir kt. Užuot saugoję kiekvieną kintamąjį atskirai, visi šie skirtingi duomenų elementai gali būti kompaktiški į vieną mazgą, naudojant struktūrą. Jis apibūdinamas naudojant raktinį žodį „struct“. Bet kurioje struktūros struktūroje visus jos narius galima pasiekti bet kuriuo metu. Toliau sukuriamas išvestinių duomenų tipas „Strukt“ Studentas.
struct Studentas
intstudent_id;
char student_name [20];
;
Aukščiau pateiktoje struktūroje kintamuosius galima deklaruoti taip.
struct Studentas student1, studentas2, studentas3;
Yra du būdai, kaip pasiekti struktūros narius. Tai yra naudojant nario operatorių (.) Ir struktūros žymiklio operatorių (->). Narius galima pasiekti naudojant struktūros kintamąjį_vardas. nario vardas. Jei programuotojas nori prieiti prie 2 studento vardo, tada jis gali parašyti pareiškimą kaip printf (student2.student_namename);
Žemiau esančią programą rasite struktūroje.
01 paveikslas: C programa su struktūromis
Pagal aukščiau pateiktą programą „Studentas“ yra struktūra. Jame yra student_id ir student_name. Pagrindinėje programoje deklaruojami du struktūros tipo kintamieji. Jie vadinami student1 ir studentas2. „Student1“ ID yra priskiriamas 1 reikšmei, naudojant nario operatorių kaip „student1.student_id = 1“. Pavadinimas „Ann“ yra eilutė. Todėl ji nukopijuojama studento_vardo nariui naudojant eilutės kopijavimo funkciją „strcpy“. ID ir vardas studentui2 yra priskiriami panašiai. Galiausiai šios vertės atspausdinamos naudojant nario operatorių.
Atminties kiekis, reikalingas struktūros kintamajam laikyti, yra visų narių atminties dydis. „Student_id“ yra 4 baitai, o „student_name“ yra 20 baitų (po vieną simbolį kiekvienas baitas). Iš viso 24 baitai yra atminties dydžio, reikalingo struktūrai, suma.
Sąjunga yra vartotojo apibrėžtas duomenų tipas C. Tai padeda saugoti skirtingus duomenų tipus toje pačioje atminties vietoje. Knyga gali turėti savybių, tokių kaip knygos pavadinimas, kaina ir tt Užuot sukūrusi kintamuosius kiekvienam iš jų, sąjunga gali būti naudojama visų skirtingų duomenų tipų sutelkimui į vieną vienetą, naudojant sąjungą. Tai apibrėžiama naudojant raktinį žodį 'union'. Toliau sukuriama išvestinė duomenų sąjungos knyga.
sąjungos knyga
char vardas [20];
dviguba kaina;
;
Aukščiau pateiktoje sąjungoje kintamuosius galima deklaruoti taip.
sąjunga Knyga knyga1, knyga2;
Yra du būdai susisiekti su sąjungos nariais. Tai yra naudojant nario operatorių (.) Ir struktūros žymiklio operatorių (->). Narius galite pasiekti naudodamiesi sąjunga_variamu_vardas. nario vardas. Jei programuotojas nori pasiekti knygos1 pavadinimą, tada jis gali parašyti pareiškimą kaip printf (knygos1.pavadinimas);
Peržiūrėkite žemiau pateiktą programą su sąjunga.
02 paveikslas: C programa naudojant sąjungą
Pagal minėtą programą knyga yra sąjunga. „Book1“ yra tipo sąjungos kintamasis. Pavadinimas ir kaina yra priskirtos vertės. Sąjungoje tik vienas iš jos narių gali būti pasiekiamas vienu metu, o visi kiti nariai turės šiukšlių vertes. ID vertė atspausdinama netinkamai, tačiau kainos vertė išspausdinama tinkamai.
03 paveikslas: Modifikuota C programa su sąjunga
Pagal minėtą programą knyga yra sąjunga. „Book1“ ir „book2“ yra sąjungos tipo kintamieji. Pirmiausia priskiriama „book1“ pavadinimo vertė ir ji atspausdinama. Tada priskiriama „book2“ pavadinimo reikšmė ir ji atspausdinama. Visi nariai spausdina teisingai, nes vienu metu naudojamas vienas narys. Atmintis, reikalinga sąjungai laikyti, yra atmintis, reikalinga didžiausiam sąjungos elementui. Aukščiau pateiktoje programoje pavadinimo kintamasis yra 20 baitų. Tai didesnė už kainą. Taigi, atminties paskirstymas sąjungai yra 20 baitų.
C struktūra ir sąjunga | |
Struktūra yra vartotojo apibrėžtas duomenų tipas C kalba, leidžiantis sujungti skirtingų tipų duomenis kartu. | „Union“ yra vartotojo apibrėžtas duomenų tipas C kalba, leidžiantis sujungti skirtingų tipų duomenis kartu. |
Prieinamumas | |
Bet kurioje struktūros struktūroje bet kuriuo metu galima patekti į jos narius. | Sąjungoje vienu metu gali patekti tik vienas iš jos narių, o visi kiti nariai turės šiukšlių vertes. |
Atminties paskirstymas | |
Atmintis, reikalinga struktūros kintamajam laikyti, yra visų narių atminties suma. | Atmintis, reikalinga sąjungos kintamajam laikyti, yra atmintis, reikalinga didžiausiam sąjungos elementui. |
Raktažodžiai | |
Raktinis žodis, naudojamas struktūrai apibrėžti, yra „struct“. | Raktinis žodis, naudojamas sąjungai apibrėžti, yra „sąjunga“. |
Masyvas naudojamas to paties tipo duomenų elementams saugoti. Kartais toje pačioje atminties vietoje reikia saugoti skirtingų tipų duomenų elementus. C programavimo kalba suteikia struktūrą ir sąjungą šiai užduočiai atlikti. Abu yra vartotojo apibrėžti duomenų tipai. Atmintis, reikalinga struktūros kintamajam laikyti, yra visų narių atminties suma. Atmintis, reikalinga sąjungos kintamajam laikyti, yra atmintis, reikalinga didžiausiam sąjungos elementui. Tai yra C struktūros ir sąjungos skirtumas.
1.Point, vadovėliai. „Structures in C.“, vadovėliai, 2017 m. Rugpjūčio 15 d. Galima rasti čia
2.Taškas, vadovėliai. „Sąjungos sąjungos C.“ , Mokymo taškas, 2017 m. Rugpjūčio 15 d. Galima rasti čia