С түзүмү менен биримдиктин ортосундагы айырма

Мазмуну:

С түзүмү менен биримдиктин ортосундагы айырма
С түзүмү менен биримдиктин ортосундагы айырма

Video: С түзүмү менен биримдиктин ортосундагы айырма

Video: С түзүмү менен биримдиктин ортосундагы айырма
Video: Өкмөттүн өзгөргөн түзүмү 2024, Ноябрь
Anonim

Негизги айырма – C тилиндеги структура менен биримдик

Массив - С тили тарабынан колдоого алынган структураланган берилиштер. Массив бир типтеги маалымат элементтерин сактоо үчүн колдонулушу мүмкүн. Эгерде int белгилери катары билдирүү бар болсо [10]; анда белгилер он белгини сактай турган массив жана алардын баары бүтүн сандар. Кээде ар кандай типтеги маалымат элементтерин бир эле эстутумда сактоо талап кылынат. Мисалы, кызматкерде кызматкердин ID, аты-жөнү, бөлүмү, жашы ж.б. болушу мүмкүн. Алар ар кандай маалымат түрлөрүнөн. Ошондуктан, ар кандай маалымат элементтерин бирдиктүү бирдик катары сактоо ыкмасы болушу керек. С түзүмдөрү жана Биримдиктер ар кандай типтеги маалымат элементтерин бир эле эс ордунда сактоо үчүн колдонулат. Түзүм жана биримдик окшош, бирок алар негизинен эстутумду бөлүштүрүүгө байланыштуу айырмаланат. Структура өзгөрмөсүн сактоо үчүн талап кылынган эс тутум бардык мүчөлөрдүн эс тутумунун көлөмүнүн жыйындысы болуп саналат. Бирикме өзгөрмөсүн сактоо үчүн талап кылынган эс - бул биримдиктеги эң чоң элемент үчүн талап кылынган эс. Бул С түзүмү менен биримдиктин ортосундагы негизги айырма. Бул макалада C структурасы менен биримдиктин ортосундагы айырма талкууланат.

С тилиндеги структура деген эмне?

Структура C тилиндеги колдонуучу аныктаган маалымат түрү. Ал ар кандай типтеги маалымат элементтерин бириктирүүгө жардам берет. Түзүм жазууларды көрсөтө алат. Студенттин студенттин_идентификатору, студенттин_аты ж.б. болушу мүмкүн. Ар бир өзгөрмөнү өзүнчө сактоонун ордуна, бул ар түрдүү маалымат элементтеринин бардыгы түзүмдүн жардамы менен бир бирдикте тыгыз болушу мүмкүн. Ал "структура" ачкыч сөзү менен аныкталат. Түзүмдө анын бардык мүчөлөрүнө каалаган убакта кирүүгө болот. Төмөнкүлөр Студенттин туунду маалымат түрү түзүмүн түзөт.

struct Студент {

instudent_id;

char студенттин_аты[20];

};

Жогорудагы структура үчүн өзгөрмөлөрдү төмөнкүдөй жарыялоого болот.

struct Студент студент1, студент2, студент3;

Түзүмдүн мүчөлөрүнө кирүүнүн эки ыкмасы бар. Башкача айтканда, мүчө оператор (.) жана структура көрсөткүч оператору (->) аркылуу. Мүчөлөргө structure_variable_name аркылуу кирүүгө болот. мүчө аты. Эгерде программист 2 студенттин атын билгиси келсе, анда ал билдирүүнү printf(student2.student_name); деп жаза алат.

Төмөнкү программаны түзүмү менен караңыз.

С структурасы менен союздун ортосундагы айырма
С структурасы менен союздун ортосундагы айырма

01-сүрөт: С түзүмдөрү менен программасы

Жогорудагы программага ылайык, Студент структура болуп саналат. Анда student_id жана student_name камтылган. Негизги программада структуралык типтеги эки өзгөрмө жарыяланган. Алар студент1 жана студент2 деп аталат. Student1дин идентификатору студент1.student_id=1 катары мүчө операторун колдонуу менен 1 мааниси менен дайындалат. "Энн" аты сап болуп саналат. Ошондуктан, ал strcpy сап көчүрүү функциясын колдонуу менен student_name мүчөсүнө көчүрүлөт. Идентификатор жана ат ушуга окшош жол менен student2ге дайындалат. Акырында, бул маанилер мүчө операторунун жардамы менен басып чыгарылат.

Структура өзгөрмөсүн сактоо үчүн талап кылынган эс тутумдун көлөмү бардык мүчөлөрдүн эс көлөмүнүн суммасы. student_id 4 байт жана student_name 20 байтты камтыйт (бир символ үчүн ар бир байт). Жалпы 24 байт түзүм талап кылган эс тутумдун көлөмүнүн суммасы.

С тилинде Union деген эмне?

Бирикме – C тилиндеги колдонуучу аныктаган маалымат түрү. Ал бир эле эстутумда ар кандай маалымат түрлөрүн сактоого жардам берет. Китепте book_name, price ж. Ал "биримдик" ачкыч сөзү менен аныкталат. Төмөнкүлөр туунду берилиштер биримдиги китебин түзөт.

unionBook{

символдун аты[20];

кош баа;

};

Жогорудагы биримдик үчүн өзгөрмөлөрдү төмөнкүдөй жарыялоого болот.

union Book book1, book2;

Бирликтин мүчөлөрүнө кирүүнүн эки жолу бар. Башкача айтканда, мүчө оператор (.) жана структура көрсөткүч оператору (->) аркылуу. Мүчөлөргө union_variable_name аркылуу кирүүгө болот. мүчө аты. Эгерде программист китептин атын билгиси келсе, анда ал билдирүүнү printf(book1.name); деп жаза алат.

Төмөнкү программаны биримдик менен караңыз.

C_Figure 02деги структура менен биримдиктин ортосундагы айырма
C_Figure 02деги структура менен биримдиктин ортосундагы айырма

02-сүрөт: C программасы союзду колдонуу

Жогорудагы программа боюнча китеп союз. book1 түрү бир өзгөрмө болуп саналат. Аты жана баасы белгиленген баалуулуктар. Биримдикте бир эле учурда анын бир гана мүчөсүнө кирүүгө болот жана калган бардык мүчөлөр таштанды баалуулуктарына ээ болот. Идентификатордун мааниси туура эмес, бирок баа туура басып чыгарылат.

С түзүмү менен биримдиктин ортосундагы негизги айырма
С түзүмү менен биримдиктин ортосундагы негизги айырма

03-сүрөт: Бирикме менен өзгөртүлгөн C программасы

Жогорудагы программага ылайык, Китеп союз. book1 жана book2 биримдик тибиндеги өзгөрмөлөр. Биринчиден, book1 аталышынын мааниси дайындалат жана ал басып чыгарылат. Андан кийин book2 аталышынын мааниси дайындалат жана ал басылып чыгат. Бардык мүчөлөр туура басып чыгарышат, анткени бир эле учурда бир мүчө колдонулууда. Биримдикти сактоо үчүн талап кылынган эс - бул биримдиктин эң чоң элементи үчүн талап кылынган эс. Жогорудагы программада аты өзгөрмө 20 байт. Бул баасына караганда чоңураак. Ошентип, союз үчүн эстутум 20 байт.

С түзүмү менен биримдиктин кандай окшоштуктары бар?

  • С тилиндеги Структура да, Биримдик да колдонуучу аныктаган маалымат түрлөрү.
  • Стеги Структура да, Биримдик да ар кандай маалымат түрлөрүн бир эле эстутумда сактоо үчүн колдонулушу мүмкүн.

С түзүмү менен биримдиктин ортосунда кандай айырма бар?

Структура жана Биримдик C

Структура – ар кандай типтеги маалыматтарды чогуу айкалыштырууга мүмкүндүк берген Си тилиндеги колдонуучу аныктаган маалымат түрү. Union - бул ар кандай типтеги маалыматтарды чогуу айкалыштырууга мүмкүндүк берген С тилиндеги колдонуучу аныктаган маалымат түрү.
Атайын мүмкүнчүлүктөр
Түзүмдө анын бардык мүчөлөрүнө каалаган убакта кирүүгө болот. Бирикмеде бир эле учурда анын бир мүчөсүнө гана кирүүгө болот жана калган бардык мүчөлөр таштанды маанилерин камтыйт.
Эстутумду бөлүштүрүү
Структура өзгөрмөсүн сактоо үчүн талап кылынган эс тутум – бул бардык мүчөлөрдүн эстутум көлөмүнүн жыйындысы. Бирикме өзгөрмөсүн сактоо үчүн талап кылынган эс - бул биримдиктеги эң чоң элемент үчүн талап кылынган эс.
Ачкычтуу сүйлөм
Түзүмдү аныктоо үчүн колдонулган ачкыч сөз - "структура". Биримдикти аныктоо үчүн колдонулган ачкыч сөз - "бирлик".

Кыскача маалымат – C тилиндеги структура менен Биримдик

Массив бир типтеги маалымат элементтерин сактоо үчүн колдонулат. Кээде бир эле эс ордунда ар кандай типтеги маалымат элементтерин сактоо зарыл. C программалоо тили бул тапшырманы аткаруу үчүн структураны жана биримдикти камсыз кылат. Экөө тең колдонуучу аныктаган маалымат түрлөрү. Структура өзгөрмөсүн сактоо үчүн талап кылынган эс тутум бардык мүчөлөрдүн эс тутумунун көлөмүнүн жыйындысы болуп саналат. Бирикме өзгөрмөсүн сактоо үчүн талап кылынган эс - бул биримдиктеги эң чоң элемент үчүн талап кылынган эс. Бул C. тилиндеги түзүлүш менен биримдиктин ортосундагы айырма

Сунушталууда: