Qhov Tseem Ceeb Qhov txawv - Cov qauv vs Union hauv C
Ib qho array yog cov ntaub ntawv tsim los ntawm C lus. Ib qho array tuaj yeem siv los khaws cov ntaub ntawv ntawm tib hom. Yog hais tias muaj ib nqe lus raws li int marks [10]; ces cov qhab nia yog ib qho array uas khaws tau kaum qhab nia thiab tag nrho lawv yog cov lej. Qee lub sij hawm nws yuav tsum khaws cov ntaub ntawv ntawm ntau hom hauv tib lub cim xeeb. Piv txwv li, tus neeg ua haujlwm tuaj yeem muaj tus neeg ua haujlwm ID, npe, chav haujlwm, hnub nyoog thiab lwm yam. Lawv muaj ntau hom ntaub ntawv. Yog li ntawd, nws yog ib qho tsim nyog yuav tsum muaj ib txoj hauv kev los khaws ntau yam ntaub ntawv raws li ib chav tsev. Structures thiab Unions hauv C yog siv los khaws cov ntaub ntawv ntawm ntau hom hauv tib qhov chaw nco. Ib tug qauv thiab ib lub koom haum zoo sib xws tab sis lawv feem ntau sib txawv vim yog kev faib kev nco. Lub cim xeeb xav tau los khaws cov qauv sib txawv yog qhov kev suav ntawm lub cim xeeb loj ntawm txhua tus tswv cuab. Lub cim xeeb xav tau los khaws ib lub koomhaum sib txawv yog lub cim xeeb xav tau rau lub ntsiab lus loj tshaj plaws hauv lub koomhaum. Qhov ntawd yog qhov sib txawv tseem ceeb ntawm cov qauv thiab kev sib koom ua ke hauv C. Kab lus no tham txog qhov sib txawv ntawm cov qauv thiab kev sib koom ua ke hauv C.
Tus Qauv hauv C yog dab tsi?
Ib tus qauv yog tus neeg siv cov ntaub ntawv teev tseg hauv C. Nws pab ua ke cov ntaub ntawv ntawm ntau hom. Ib qho qauv tuaj yeem sawv cev rau cov ntaub ntawv. Ib tus menyuam kawm ntawv tuaj yeem muaj student_id, student_name thiab lwm yam. Ntau dua li khaws cia txhua qhov sib txawv sib txawv, tag nrho cov ntaub ntawv sib txawv no tuaj yeem sib sau ua ke rau hauv ib chav tsev uas siv cov qauv. Nws txhais tau tias siv lo lus tseem ceeb 'struct'. Nyob rau hauv ib lub qauv, tag nrho nws cov tswv cuab tuaj yeem nkag tau txhua lub sijhawm. Cov hauv qab no tsim cov ntaub ntawv muab los ntawm cov tub ntxhais kawm.
struct Student {
instudent_id;
char student_name[20];
};
Rau cov qauv saum toj no, qhov sib txawv tuaj yeem raug tshaj tawm raws li hauv qab no.
struct tub kawm 1, tub kawm 2, tub ntxhais kawm 3;
Muaj ob txoj hauv kev los nkag mus rau cov tswv cuab ntawm cov qauv. Qhov ntawd yog los ntawm kev siv tus tswv cuab tus neeg teb xov tooj (.) thiab tus qauv taw tes tus neeg teb xov tooj (->). Cov tswv cuab tuaj yeem nkag tau siv cov qauv_variable_name. npe member. Yog tias tus programmer xav nkag mus rau tus menyuam kawm ntawv lub npe 2, ces nws tuaj yeem sau nqe lus raws li printf(student2.student_namename);
Saib cov kev pabcuam hauv qab no nrog tus qauv.
Daim duab 01: C program nrog cov qauv
Raws li cov kev kawm saum toj no, Cov Tub Kawm Ntawv yog tus qauv. Nws muaj student_id thiab student_name. Ob qhov sib txawv ntawm cov qauv qauv tau tshaj tawm hauv qhov kev zov me nyuam loj. Lawv hu ua student1 and students2. Tus tub kawm ntawv tus id yog muab nrog tus nqi 1 siv tus tswv cuab tus tswv cuab raws li student1.student_id=1. Lub npe "Ann" yog ib txoj hlua. Yog li ntawd, nws tau theej rau cov tub ntxhais kawm_name cov tswv cuab siv txoj hlua luam ua haujlwm strcpy. Tus id thiab lub npe raug muab rau cov tub ntxhais kawm ntawv2 zoo ib yam. Thaum kawg, cov nqi no tau luam tawm siv tus tswv cuab tus tswv.
Tus nqi ntawm lub cim xeeb yuav tsum khaws cov qauv sib txawv yog cov lej ntawm lub cim xeeb loj ntawm txhua tus tswv cuab. Student_id muaj 4 bytes thiab student_name muaj 20 bytes (ib byte txhua rau ib tus cim). Tag nrho 24 bytes yog cov lej ntawm lub cim xeeb uas xav tau los ntawm cov qauv.
Union hauv C yog dab tsi?
Ib lub koom haum yog cov neeg siv cov ntaub ntawv teev tseg hauv C. Nws pab khaws cov ntaub ntawv sib txawv hauv tib qhov chaw nco. Ib Phau Ntawv tuaj yeem muaj cov khoom xws li book_name, nqe thiab lwm yam. Tsis yog tsim cov kev hloov pauv rau txhua tus ntawm lawv, ib lub koomhaum tuaj yeem siv los sib sau ua ke txhua hom ntaub ntawv sib txawv rau hauv ib chav tsev siv lub koomhaum. Nws txhais tau tias siv lo lus tseem ceeb 'union'. Cov hauv qab no tsim cov ntaub ntawv muab los ntawm union Phau Ntawv.
unionBook{
char name[20];
ob nqe;
};
Rau lub koom haum saum toj no, qhov sib txawv tuaj yeem raug tshaj tawm raws li hauv qab no.
union book1, book2;
Muaj ob txoj hauv kev los nkag rau cov tswv cuab ntawm lub koomhaum. Qhov ntawd yog los ntawm kev siv tus tswv cuab tus neeg teb xov tooj (.) thiab tus qauv taw tes tus neeg teb xov tooj (->). Cov tswv cuab tuaj yeem nkag tau siv union_variable_name. npe member. Yog tias tus programmer xav nkag mus rau lub npe ntawm phau ntawv 1, ces nws tuaj yeem sau nqe lus raws li printf(book1.name);
Xa mus rau qhov kev pab cuam hauv qab no nrog lub koomhaum.
Daim duab 02: C program siv union
Raws li cov kev pab cuam saum toj no, Phau Ntawv yog ib lub koom haum. Phau ntawv 1 yog qhov sib txawv ntawm hom union. Lub npe thiab tus nqi yog muab tus nqi. Hauv kev sib koom ua ke, tsuas yog ib tus tswvcuab tuaj yeem nkag mus rau ib lub sijhawm thiab tag nrho lwm cov tswvcuab yuav muaj cov khoom pov tseg. Tus nqi ntawm tus ID luam tsis zoo tab sis tus nqi tus nqi luam tawm kom raug.
Daim duab 03: Hloov kho C program nrog union
Raws li cov kev pab cuam saum toj no, Phau Ntawv yog ib lub koom haum. Phau ntawv 1 thiab phau ntawv 2 yog hom kev sib koom ua ke. Ua ntej, tus nqi rau phau ntawv 1 lub npe raug muab thiab nws luam tawm. Tom qab ntawd tus nqi rau phau ntawv 2 lub npe raug muab thiab luam tawm. Txhua tus tswvcuab luam tawm kom raug vim tias ib tus tswvcuab raug siv ib zaug. Lub cim xeeb uas yuav tsum tau khaws ib lub koomhaum yog lub cim xeeb uas yuav tsum tau muaj rau cov khoom loj tshaj plaws ntawm lub koomhaum. Hauv qhov program saum toj no, lub npe hloov pauv yog 20 bytes. Nws loj dua tus nqi. Yog li, lub cim xeeb faib rau lub koomhaum yog 20 bytes.
Dab tsi yog qhov zoo sib xws ntawm Cov Qauv thiab Union hauv C?
- Ob Tus Qauv thiab Union hauv C yog hom ntaub ntawv uas tus neeg siv tau txhais.
- Txhua tus qauv thiab Union hauv C tuaj yeem siv los khaws cov ntaub ntawv sib txawv hauv tib qhov chaw nco.
Qhov txawv ntawm Cov Qauv thiab Union hauv C yog dab tsi?
Structure vs Union hauv C |
|
Structure yog tus neeg siv cov ntaub ntawv teev tseg hauv hom C uas tso cai rau kev sib txuas cov ntaub ntawv ntawm ntau hom ua ke. | Union yog tus neeg siv cov ntaub ntawv txhais ua hom lus C uas tso cai muab cov ntaub ntawv sib txawv ua ke. |
Kev nkag mus tau | |
Hauv ib lub qauv, txhua tus tswvcuab tuaj yeem nkag tau txhua lub sijhawm. | Nyob hauv ib lub koomhaum, tsuas yog ib tus tswvcuab tuaj yeem nkag tau rau ib lub sijhawm thiab tag nrho lwm cov tswvcuab yuav muaj cov khoom pov tseg. |
Nyiaj faib | |
Lub cim xeeb yuav tsum khaws cov qauv sib txawv yog qhov kev suav ntawm lub cim xeeb loj ntawm txhua tus tswv cuab. | Lub cim xeeb xav tau los khaws ib lub koomhaum sib txawv yog lub cim xeeb xav tau rau cov khoom loj tshaj plaws hauv lub koomhaum. |
lo lus tseem ceeb | |
Lo lus tseem ceeb siv los txhais cov qauv yog 'struct'. | lo lus tseem ceeb siv los txhais lub union yog 'union'. |
Summary – Structure vs Union in C
Ib qho array yog siv los khaws cov ntaub ntawv ntawm tib hom. Qee lub sij hawm nws yog ib qho tsim nyog los khaws cov ntaub ntawv ntawm ntau hom hauv tib qhov chaw nco. C programming lus muab cov qauv thiab kev sib koom ua ke kom ua tiav txoj haujlwm no. Ob leeg yog cov neeg siv cov ntaub ntawv teev tseg. Lub cim xeeb xav tau los khaws cov qauv sib txawv yog qhov kev suav ntawm lub cim xeeb loj ntawm txhua tus tswv cuab. Lub cim xeeb xav tau los khaws ib lub koomhaum sib txawv yog lub cim xeeb xav tau rau lub ntsiab lus loj tshaj plaws hauv lub koomhaum. Qhov no yog qhov sib txawv ntawm cov qauv thiab kev sib koom ua ke hauv C.