ກຳ ນົດໂຄງສ້າງ. ສິ່ງທີ່ແຕກຕ່າງກັນລະຫວ່າງໂຄງສ້າງແລະອາເລ?


ຕອບ 1:

ໂຄງສ້າງແມ່ນປະເພດຂໍ້ມູນທີ່ ກຳ ນົດໂດຍຜູ້ໃຊ້ເຊິ່ງສາມາດປະກອບມີ ໜຶ່ງ ຫຼືຫຼາຍປະເພດຂໍ້ມູນທີ່ແຕກຕ່າງກັນ. Array ແມ່ນພຽງແຕ່ການລວບລວມອົງປະກອບ, ເຊິ່ງແຕ່ລະອົງປະກອບມີປະເພດຂໍ້ມູນດຽວກັນ. ຈິນຕະນາການສ້າງແອັບພລິເຄຊັນທີ່ທ່ານຕ້ອງການເກັບຂໍ້ມູນກ່ຽວກັບນັກຮຽນ. ນັກຮຽນມີເລກພາລະບົດບາດ (int), ຊື່ (ສະຕິງ), ເພດ (char) ແລະ GPA (ເລື່ອນລອຍ). ທ່ານມີ 2 ຕົວເລືອກ -

ສ້າງ 4 ອາຄານທີ່ແຕກຕ່າງກັນ - rollno [n], ຊື່ [n], ເພດ [n], gpa [n], ແຕ່ລະ i ທີ່ເປັນຕົວແທນ (0 <= i

ວິທີຕໍ່ໄປແມ່ນການສ້າງໂຄງສ້າງ. ທ່ານສ້າງໂຄງສ້າງດັ່ງຕໍ່ໄປນີ້:

ນັກສຶກສາໂຄງສ້າງ {int rollno; ຊື່ char [100]; ເພດ ສຳ ພັນ; gpa ລອຍ; }; struct student__ [ລາຍຊື່];

ວິທີນີ້ທ່ານສາມາດບັນທຶກລາຍລະອຽດທັງ ໝົດ ຂອງນັກຮຽນໃນບລັອກຂໍ້ມູນດຽວ. student_list [i] ບັນທຶກຂໍ້ມູນທັງ ໝົດ ສຳ ລັບນັກຮຽນສະເພາະ.

ໂຄງສ້າງສະ ເໜີ ລະດັບການດຶງດູດສະເພາະ. ຈິນຕະນາການຂຽນຟັງຊັນເພື່ອປະມວນຜົນລາຍລະອຽດກ່ຽວກັບນັກຮຽນຄົນ ໜຶ່ງ. ດ້ວຍວິທີ ທຳ ອິດ, ໜ້າ ທີ່ເບິ່ງຄືວ່ານີ້:

int process_student (int rollno, char * ຊື່, char sex, float gpa) {// ເຮັດບາງຢ່າງ}

ຖ້າທ່ານໃຊ້ໂຄງສ້າງ, ທ່ານສາມາດແບ່ງປັນຂໍ້ມູນໄດ້ງ່າຍ -

int process_student (ລາຍການນັກຮຽນທີ່ມີໂຄງສ້າງ) {// ເຮັດບາງຢ່າງກັບນັກຮຽນ}

ທ່ານສາມາດ ດຳ ເນີນການ ກຳ ນົດວິທີການຕ່າງໆທີ່ມີໂຄງສ້າງແລະເຮັດການປຸງແຕ່ງບາງຢ່າງກັບພວກມັນ - ທີ່ ສຳ ຄັນເພື່ອ ຈຳ ລອງພຶດຕິ ກຳ ທີ່ແນໃສ່ວັດຖຸ.


ຕອບ 2:

ໂຄງສ້າງແມ່ນປະເພດຂໍ້ມູນທີ່ ກຳ ນົດໂດຍຜູ້ໃຊ້.

ຂບວນປະກອບດ້ວຍຫຼາຍໆອົງປະກອບຂອງປະເພດຂໍ້ມູນດຽວກັນ.

ຖ້າທ່ານຕ້ອງການສ້າງປະເພດຂໍ້ມູນ, ໃຫ້ ນຳ ໃຊ້ໂຄງສ້າງຂອງວິທີການ. ມັນດີກວ່າທີ່ຈະໃຊ້ໂຄງສ້າງເປັນອາເລ.

ຍົກຕົວຢ່າງ, ພິຈາລະນາຕົວແທນຕໍ່ໄປນີ້ຂອງຊຸດ 50 2D ຈຸດ. ໃນເວລາທີ່ການນໍາໃຊ້ອາເລ, ທ່ານໄດ້ຮັບຄໍານິຍາມດັ່ງຕໍ່ໄປນີ້:

int x [50], y [50];

ທ່ານຍັງສາມາດໃຊ້:

int [50] [2];

ເຖິງຢ່າງໃດກໍ່ຕາມ, ການ ນຳ ໃຊ້ໂຄງສ້າງແມ່ນເປັນຕົວແທນທີ່ດີທີ່ສຸດ.

[ລະຫັດ]

ຈຸດໂຄງສ້າງ {

ເຈົ້າ x, y ເຈົ້າ;

};

ຈຸດໂຄງສ້າງຈຸດ [50];

[/ ລະຫັດ]