Apa itu Struktur?
Struktur adalah jenis data yang ditentukan pengguna dalam bahasa pengaturcaraan C yang menggabungkan item data yang berkaitan secara logik dari pelbagai jenis data bersama-sama.
Semua elemen struktur disimpan di lokasi memori bersebelahan. Pemboleh ubah jenis struktur boleh menyimpan lebih dari satu item data dari pelbagai jenis data dengan satu nama.
Dalam tutorial ini, anda akan belajar:
- Apa itu Struktur?
- Apa itu Union
- Sintaksis Menyatakan Struktur
- Contoh Struktur dalam Pengaturcaraan C
- Sintaksis Menyatakan Kesatuan
- Contoh Union dalam Pengaturcaraan C
- Struktur Vs. Kesatuan
- Kelebihan struktur
- Kelebihan penyatuan
- Kekurangan struktur
- Kelemahan penyatuan
Apa itu Union
Union adalah jenis data yang ditentukan pengguna, sama seperti struktur. Union menggabungkan objek dari pelbagai jenis dan saiz bersama-sama. Pembolehubah kesatuan memperuntukkan ruang memori sama dengan ruang untuk memegang pemboleh ubah kesatuan terbesar. Ia membolehkan pelbagai jenis objek untuk berkongsi lokasi yang sama.
Sintaksis Menyatakan Struktur
struct [name of the structure]{type member1;type member2;type member3;};
Struktur dinyatakan menggunakan kata kunci "struct" dan nama struktur. Nombor 1, nombor 2, nombor 3 adalah anggota struktur individu. Bahagian badan diakhiri dengan titik koma (;).
Contoh Struktur dalam Pengaturcaraan C
#includestruct student {char name[60];int roll_no;float marks;} sdt;int main() {printf("Enter the following information:\n");printf("Enter student name: ");fgets(sdt.name, sizeof(sdt.name), stdin);printf("Enter student roll number: ");scanf("%d", & sdt. roll_no);printf("Enter students marks: ");scanf("%f", & sdt.marks);printf("The information you have entered is: \n");printf("Student name: ");printf("%s", sdt.name);printf("Student roll number: %d\n", sdt. roll_no);printf("Student marks: %.1f\n", sdt.marks);return 0;}
Dalam program di atas, struktur yang disebut pelajar dibuat. Struktur ini mempunyai tiga anggota data: 1) nama (rentetan), 2) roll_no (bilangan bulat), dan 3) tanda (terapung).
Selepas ini, sdt pemboleh ubah struktur dibuat untuk menyimpan maklumat pelajar dan memaparkannya di skrin komputer.
Pengeluaran:
Masukkan maklumat berikut:
Masukkan nama pelajar: James
Masukkan nombor daftar pelajar: 21
Masukkan markah pelajar: 67
Maklumat yang anda masukkan adalah:
Nama pelajar: John
Nombor daftar pelajar: 21
Markah pelajar: 67.0
Sintaksis Menyatakan Kesatuan
union [name of union]{type member1;type member2;type member3;};
Union diisytiharkan menggunakan kata kunci "kesatuan" dan nama kesatuan. Nombor 1, nombor 2, nombor 3 adalah anggota persatuan individu. Bahagian badan diakhiri dengan titik koma (;).
Contoh Union dalam Pengaturcaraan C
#includeunion item{int x;float y;char ch;};int main( ){union item it;it.x = 12;it.y = 20.2;it.ch = 'a';printf("%d\n", it.x);printf("%f\n", it.y);printf("%c\n", it.ch);return 0;}
Pengeluaran:
1101109601
20.199892
a
Dalam program di atas, anda dapat melihat bahawa nilai x dan y menjadi rosak. Hanya variabel ch yang mencetak hasil yang diharapkan. Ini kerana, dalam kesatuan, lokasi memori dikongsi di antara semua jenis data ahli.
Oleh itu, satu-satunya anggota data yang nilainya disimpan, akan menempati ruang memori. Nilai pemboleh ubah ch akhirnya disimpan, jadi nilai pemboleh ubah selebihnya hilang.
Struktur Vs. Kesatuan
Inilah perbezaan penting antara struktur dan kesatuan:
Struktur | Kesatuan |
Anda boleh menggunakan kata kunci struct untuk menentukan struktur. | Anda boleh menggunakan kata kunci kesatuan untuk menentukan kesatuan. |
Setiap anggota dalam struktur diberikan lokasi memori yang unik. | Dalam kesatuan, lokasi memori dikongsi oleh semua anggota data. |
Mengubah nilai satu anggota data tidak akan mempengaruhi anggota data yang lain dalam struktur. | Mengubah nilai satu anggota data akan mengubah nilai ahli data lain dalam kesatuan. |
Ini membolehkan anda memulakan beberapa ahli sekaligus. | Ini membolehkan anda memulakan hanya anggota pertama kesatuan. |
Ukuran keseluruhan struktur adalah jumlah ukuran setiap anggota data. | Jumlah keseluruhan kesatuan adalah ukuran anggota data terbesar. |
Ia digunakan terutamanya untuk menyimpan pelbagai jenis data. | Ia digunakan terutamanya untuk menyimpan salah satu daripada banyak jenis data yang ada. |
Ia menempati ruang untuk setiap anggota yang ditulis dalam parameter dalaman. | Ia memenuhi ruang untuk ahli yang mempunyai ukuran tertinggi yang ditulis dalam parameter dalaman. |
Anda boleh mendapatkan mana-mana ahli pada satu masa. | Anda boleh mengakses satu ahli pada satu masa dalam kesatuan. |
Ia menyokong susunan fleksibel. | Ia tidak menyokong susunan fleksibel. |
Kelebihan struktur
Berikut adalah kebaikan / faedah menggunakan struktur:
- Struktur mengumpulkan lebih daripada satu data mengenai subjek yang sama bersama di tempat yang sama.
- Ia berguna apabila anda ingin mengumpulkan data jenis dan parameter data yang serupa seperti nama depan, nama belakang, dll.
- Sangat mudah dikekalkan kerana kita dapat mewakili keseluruhan catatan dengan menggunakan satu nama.
- Dalam struktur, kita dapat mengirimkan set catatan lengkap ke fungsi apa pun menggunakan satu parameter.
- Anda boleh menggunakan susunan struktur untuk menyimpan lebih banyak rekod dengan jenis yang serupa.
Kelebihan penyatuan
Berikut adalah kebaikan / faedah untuk menggunakan kesatuan:
- Ia menempati memori yang lebih sedikit berbanding struktur.
- Apabila anda menggunakan kesatuan, hanya pemboleh ubah terakhir yang dapat diakses secara langsung.
- Union digunakan apabila anda mesti menggunakan lokasi memori yang sama untuk dua atau lebih anggota data.
- Ini membolehkan anda menyimpan data dari satu ahli data sahaja.
- Ruang yang diperuntukkan adalah sama dengan ukuran maksimum anggota data.
Kekurangan struktur
Berikut adalah kekurangan / kekurangan untuk menggunakan struktur:
- Sekiranya kerumitan projek IT melampaui batas, sukar untuk diuruskan.
- Perubahan satu struktur data dalam kod memerlukan perubahan di banyak tempat lain. Oleh itu, perubahan menjadi sukar dijejaki.
- Strukturnya lebih perlahan kerana memerlukan ruang penyimpanan untuk semua data.
- Anda boleh mengambil mana-mana ahli pada satu masa dalam struktur sedangkan anda boleh mengakses satu ahli pada satu masa dalam kesatuan.
- Struktur menempati ruang untuk setiap anggota yang ditulis dalam parameter dalaman sementara kesatuan menempati ruang untuk anggota yang mempunyai ukuran tertinggi yang ditulis dalam parameter dalaman.
- Struktur menyokong susunan fleksibel. Union tidak menyokong susunan fleksibel.
Kelemahan penyatuan
Berikut, terdapat kekurangan / kekurangan untuk menggunakan kesatuan:
- Anda hanya boleh menggunakan satu ahli kesatuan pada satu masa.
- Semua pemboleh ubah penyatuan tidak dapat diinisialisasi atau digunakan dengan nilai yang berbeza pada satu masa.
- Union memberikan satu ruang simpanan biasa untuk semua anggotanya.
PERBEZAAN UTAMA:
- Setiap anggota dalam struktur diberikan lokasi memori yang unik sementara dalam kesatuan lokasi memori dikongsi oleh semua anggota data.
- Mengubah nilai satu anggota data tidak akan mempengaruhi anggota data lain dalam struktur sedangkan mengubah nilai satu anggota data akan mengubah nilai anggota data lain dalam kesatuan.
- Struktur digunakan terutamanya untuk menyimpan pelbagai jenis data sementara penyatuan terutamanya digunakan untuk menyimpan salah satu daripada banyak jenis data.
- Dalam struktur, anda boleh mengambil mana-mana ahli pada satu masa dan sebaliknya dalam kesatuan, anda boleh mengakses satu anggota pada satu masa.
- Struktur menyokong susunan fleksibel sementara penyatuan tidak menyokong susunan fleksibel.