Masīvs ir dati, kurus strukturē C valoda. Masīvu var izmantot tāda paša veida datu elementu glabāšanai. Ja ir paziņojums kā int zīmes [10]; tad atzīmes ir masīvs, kurā var saglabāt desmit atzīmes, un tās visas ir veseli skaitļi. Dažreiz tiek prasīts dažādu veidu datu elementus uzglabāt tajā pašā atmiņas vietā. Piemēram, darbiniekam var būt darbinieka ID, vārds, departaments, vecums utt. Viņiem ir dažādi datu tipi. Tāpēc ir nepieciešama metode dažādu datu elementu glabāšanai vienā vienībā. C struktūras un savienības tiek izmantotas dažādu veidu datu elementu glabāšanai vienā atmiņas vietā. Struktūra un savienība ir līdzīgas, taču tās galvenokārt atšķiras atmiņas iedalīšanas dēļ. Atmiņa, kas nepieciešama struktūras mainīgā lieluma glabāšanai, ir visu dalībnieku atmiņas lieluma summa. Atmiņa, kas nepieciešama, lai saglabātu savienības mainīgo, ir tā atmiņa, kas nepieciešama lielākajam savienības elementam. Tas ir galvenā atšķirība starp struktūru un savienību C. Šajā rakstā apskatīta atšķirība starp struktūru un savienību C..
1. Pārskats un galvenās atšķirības
2. Kas ir C struktūra?
3. Kas ir Savienība C
4. Struktūras un savienības līdzības C
5. Salīdzinājums blakus - struktūra un savienība C tabulas formā
6. Kopsavilkums
Struktūra ir lietotāja definēts datu tips C. Tā palīdz apvienot dažādu veidu datu vienumus. Struktūra var attēlot ierakstus. Studentam var būt students_id, studenta_vārds utt. Tā vietā, lai katru mainīgo glabātu atsevišķi, visi šie dažādie datu vienumi var būt kompakti vienā vienībā, izmantojot struktūru. Tas tiek definēts, izmantojot atslēgvārdu 'struct'. Struktūrā visiem tās dalībniekiem var piekļūt jebkurā laikā. Tālāk tiek izveidots atvasināts datu tips struct Student.
struct students
intstudent_id;
char studenta_vārds [20];
;
Iepriekšminētajai struktūrai mainīgos lielumus var deklarēt šādi.
struktrs Studentu students1, students2, students3;
Ir divas metodes, kā piekļūt struktūras dalībniekiem. Tas ir, izmantojot dalībnieka operatoru (.) Un struktūras rādītāja operatoru (->). Locekļiem var piekļūt, izmantojot structure_variable_name. biedra vārds. Ja programmētājs vēlas piekļūt 2. studenta vārdam, viņš var uzrakstīt paziņojumu kā printf (students2.student_namename);
Zemāk redzamo programmu skatiet ar struktūru.
01. attēls: C programma ar struktūrām
Saskaņā ar iepriekšminēto programmu students ir struktūra. Tajā ir students_id un students_name. Pamatprogrammā ir deklarēti divi struktūras veida mainīgie. Viņus sauc par studentu1 un studentu2. Studenta1 ID tiek piešķirts ar vērtību 1, izmantojot dalībnieka operatoru kā students1.student_id = 1. Nosaukums “Ann” ir virkne. Tāpēc tas tiek kopēts studenta_vārda loceklim, izmantojot virknes kopēšanas funkciju strcpy. ID un vārds tiek piešėirts studentam2 līdzīgā veidā. Visbeidzot, šīs vērtības tiek izdrukātas, izmantojot dalībnieka operatoru.
Atmiņas apjoms, kas nepieciešams struktūras mainīgā lieluma saglabāšanai, ir visu dalībnieku atmiņas lieluma summa. Student_id satur 4 baitus, un student_name satur 20 baitus (viens baits katram rakstzīmei). Kopējais 24 baitu ir atmiņas lieluma summa, kas nepieciešama struktūrai.
Savienība ir lietotāja definēts datu tips C. Tas palīdz vienā atmiņas vietā uzglabāt dažādus datu tipus. Grāmatai var būt tādas īpašības kā grāmatas_nosaukums, cena utt. Tā vietā, lai izveidotu mainīgos katram no tiem, savienību var izmantot, lai visus dažādus datu tipus sablīvētu vienā vienībā, izmantojot savienību. Tas tiek definēts, izmantojot atslēgvārdu 'union'. Tālāk tiek izveidota atvasinātu datu savienības grāmata.
savienības grāmata
char vārds [20];
dubultā cena;
;
Iepriekšminētajai savienībai mainīgos lielumus var deklarēt šādi.
arodbiedrība Book book1, book2;
Ir divas metodes, kā piekļūt savienības biedriem. Tas ir, izmantojot dalībnieka operatoru (.) Un struktūras rādītāja operatoru (->). Dalībniekiem var piekļūt, izmantojot union_variable_name. biedra vārds. Ja programmētājs vēlas piekļūt grāmatas1 nosaukumam, viņš var uzrakstīt paziņojumu kā printf (grāmatas1.nosaukums);
Skatiet zemāk esošo programmu ar savienību.
02 attēls: C programma, izmantojot savienību
Saskaņā ar iepriekš minēto programmu grāmata ir savienība. 1. grāmata ir mainīgā veida savienība. Nosaukumam un cenai ir piešķirtas vērtības. Arodbiedrībā vienlaikus var piekļūt tikai vienam no tās biedriem, un visiem pārējiem biedriem būs atkritumu vērtības. ID vērtība netiek izdrukāta pareizi, bet cenas vērtība tiek izdrukāta pareizi.
03. attēls. Modificēta C programma ar savienību
Saskaņā ar iepriekš minēto programmu Book ir savienība. Book1 un book2 ir savienības tipa mainīgie. Vispirms tiek piešķirta grāmata1 nosaukuma vērtība un tā tiek izdrukāta. Tad tiek piešķirta book2 nosaukuma vērtība un tas tiek izdrukāts. Visi dalībnieki drukā pareizi, jo vienlaikus tiek izmantots viens loceklis. Atmiņa, kas nepieciešama savienības saglabāšanai, ir atmiņa, kas nepieciešama lielākajam savienības elementam. Iepriekš minētajā programmā nosaukuma mainīgais ir 20 baiti. Tas ir lielāks par cenu. Tātad, atmiņas sadalījums savienībai ir 20 baiti.
C struktūra un Savienība | |
Struktūra ir lietotāja definēts datu tips C valodā, kas ļauj apvienot dažādu veidu datus kopā. | Union ir lietotāja definēts datu tips C valodā, kas ļauj apvienot dažādu veidu datus kopā. |
Pieejamība | |
Struktūrā visiem tās dalībniekiem var piekļūt jebkurā laikā. | Arodbiedrībā vienlaikus var piekļūt tikai vienam no tās biedriem, un visiem pārējiem biedriem būs atkritumu vērtības. |
Atmiņas piešķiršana | |
Atmiņa, kas nepieciešama struktūras mainīgā lieluma glabāšanai, ir visu dalībnieku atmiņas lieluma summa. | Atmiņa, kas nepieciešama, lai saglabātu savienības mainīgo, ir tā atmiņa, kas nepieciešama lielākajam savienības elementam. |
Atslēgvārds | |
Struktūras noteikšanai izmantotais atslēgvārds ir “struktūra”. | Arodbiedrības definēšanai izmantotais atslēgvārds ir “savienība”. |
Masīvu izmanto tā paša veida datu elementu glabāšanai. Dažreiz vienā un tajā pašā atmiņas vietā ir jāglabā dažāda veida datu elementi. C programmēšanas valoda nodrošina struktūru un savienību šī uzdevuma veikšanai. Abi ir lietotāja definēti datu tipi. Atmiņa, kas nepieciešama struktūras mainīgā lieluma glabāšanai, ir visu dalībnieku atmiņas lieluma summa. Atmiņa, kas nepieciešama, lai saglabātu savienības mainīgo, ir tā atmiņa, kas nepieciešama lielākajam savienības elementam. Šī ir atšķirība starp struktūru un savienību C.
1.Punkts, konsultācijas. “Structures in C.”, konsultāciju punkts, 2017. gada 15. augusts. Pieejams šeit
2.Punkts, konsultācijas. “Arodbiedrības C.” , Pamācību punkts, 2017. gada 15. augusts. Pieejams šeit