Perbezaan Utama – Struktur vs Kesatuan dalam C
Susun atur ialah data berstruktur yang disokong oleh bahasa C. Tatasusunan boleh digunakan untuk menyimpan elemen data jenis yang sama. Jika terdapat pernyataan sebagai tanda int [10]; maka markah ialah tatasusunan yang boleh menyimpan sepuluh markah dan kesemuanya adalah integer. Kadangkala diperlukan menyimpan elemen data dari jenis yang berbeza dalam lokasi memori yang sama. Sebagai contoh, pekerja boleh mempunyai ID pekerja, nama, jabatan, umur dsb. Mereka terdiri daripada jenis data yang berbeza. Oleh itu, perlu ada kaedah untuk menyimpan pelbagai elemen data sebagai satu unit. Struktur dan Kesatuan dalam C digunakan untuk menyimpan elemen data jenis yang berbeza dalam lokasi memori yang sama. Struktur dan kesatuan adalah serupa tetapi ia berbeza terutamanya disebabkan oleh peruntukan memori. Memori yang diperlukan untuk menyimpan pembolehubah struktur ialah penjumlahan saiz memori semua ahli. Memori yang diperlukan untuk menyimpan pembolehubah kesatuan ialah memori yang diperlukan untuk elemen terbesar dalam kesatuan. Itulah perbezaan utama antara struktur dan kesatuan dalam C. Artikel ini membincangkan perbezaan antara struktur dan kesatuan dalam C.
Apakah Struktur dalam C?
Struktur ialah jenis data yang ditentukan pengguna dalam C. Ia membantu untuk menggabungkan item data daripada jenis yang berbeza. Struktur boleh mewakili rekod. Seorang pelajar boleh mempunyai id_pelajar, nama_pelajar dan lain-lain. Daripada menyimpan setiap pembolehubah secara berasingan, semua item data yang berbeza ini boleh dipadatkan menjadi satu unit menggunakan struktur. Ia ditakrifkan menggunakan kata kunci 'struct'. Dalam struktur, semua ahlinya boleh diakses pada bila-bila masa. Yang berikut mencipta struktur jenis data terbitan Pelajar.
struct Pelajar {
id_pelajar;
nama_pelajar[20];
};
Untuk struktur di atas, pembolehubah boleh diisytiharkan seperti berikut.
struct Pelajar pelajar1, pelajar2, pelajar3;
Terdapat dua kaedah untuk mengakses ahli struktur. Iaitu dengan menggunakan operator ahli (.) dan operator penunjuk struktur (->). Ahli boleh diakses menggunakan structure_variable_name. nama ahli. Jika pengaturcara ingin mengakses nama pelajar 2, maka dia boleh menulis pernyataan sebagai printf(nama_pelajar2.nama_pelajar);
Rujuk atur cara di bawah dengan struktur.
Rajah 01: Program C dengan struktur
Menurut program di atas, Pelajar adalah struktur. Ia mengandungi student_id dan student_name. Dua pembolehubah jenis struktur diisytiharkan dalam program utama. Mereka dipanggil pelajar1 dan pelajar2. Id pelajar1 diberikan dengan nilai 1 menggunakan operator ahli sebagai pelajar1.student_id=1. Nama "Ann" ialah rentetan. Oleh itu, ia disalin kepada ahli student_name menggunakan fungsi salinan rentetan strcpy. Id dan nama diberikan kepada student2 dengan cara yang sama. Akhir sekali, nilai tersebut dicetak menggunakan operator ahli.
Jumlah memori yang diperlukan untuk menyimpan pembolehubah struktur ialah jumlah saiz memori semua ahli. Student_id mengandungi 4 bait dan student_name mengandungi 20 bait (satu bait setiap satu untuk aksara). Jumlah 24 bait ialah jumlah saiz memori yang diperlukan oleh struktur.
Apakah Union dalam C?
Kesatuan ialah jenis data yang ditentukan pengguna dalam C. Ia membantu untuk menyimpan jenis data yang berbeza dalam lokasi memori yang sama. Buku boleh mempunyai sifat seperti nama_buku, harga dsb. Daripada mencipta pembolehubah untuk setiap satu daripadanya, kesatuan boleh digunakan untuk memampatkan semua jenis data yang berbeza menjadi satu unit menggunakan kesatuan. Ia ditakrifkan menggunakan kata kunci 'kesatuan'. Yang berikut mencipta Buku kesatuan data terbitan.
buku kesatuan{
nama aksara[20];
harga berganda;
};
Untuk kesatuan di atas, pembolehubah boleh diisytiharkan seperti berikut.
buku buku kesatuan1, buku2;
Terdapat dua kaedah untuk mengakses ahli kesatuan. Iaitu dengan menggunakan operator ahli (.) dan operator penunjuk struktur (->). Ahli boleh diakses menggunakan union_variable_name. nama ahli. Jika pengaturcara ingin mengakses nama book1, maka dia boleh menulis pernyataan sebagai printf(book1.name);
Rujuk program di bawah dengan kesatuan.
Rajah 02: Program C menggunakan kesatuan
Menurut program di atas, Buku adalah kesatuan. Buku1 ialah pembolehubah jenis kesatuan. Nama dan harga adalah nilai yang ditetapkan. Dalam kesatuan, hanya seorang ahlinya boleh diakses pada satu masa dan semua ahli lain akan mempunyai nilai sampah. Nilai id tidak dicetak dengan betul tetapi nilai harga dicetak dengan betul.
Rajah 03: Program C yang diubah suai dengan kesatuan
Menurut program di atas, Buku adalah kesatuan. Book1 dan book2 ialah pembolehubah jenis kesatuan. Pertama, nilai untuk nama book1 diberikan dan ia dicetak. Kemudian nilai untuk nama book2 diberikan dan ia dicetak. Semua ahli mencetak dengan betul kerana satu ahli sedang digunakan pada satu masa. Memori yang diperlukan untuk menyimpan kesatuan adalah memori yang diperlukan untuk elemen terbesar kesatuan. Dalam program di atas, pembolehubah nama ialah 20 bait. Ia lebih besar daripada harganya. Jadi, peruntukan memori untuk kesatuan ialah 20 bait.
Apakah Persamaan Antara Struktur dan Kesatuan dalam C?
- Kedua-dua Struktur dan Kesatuan dalam C ialah jenis data yang ditentukan pengguna.
- Struktur dan Kesatuan dalam C boleh digunakan untuk menyimpan jenis data yang berbeza dalam lokasi memori yang sama.
Apakah Perbezaan Antara Struktur dan Kesatuan dalam C?
Structure vs Union dalam C |
|
Struktur ialah jenis data yang ditentukan pengguna dalam bahasa C yang membenarkan penggabungan data pelbagai jenis bersama-sama. | Union ialah jenis data yang ditentukan pengguna dalam bahasa C yang membenarkan penggabungan data pelbagai jenis bersama-sama. |
Kebolehcapaian | |
Dalam struktur, semua ahlinya boleh diakses pada bila-bila masa. | Dalam kesatuan, hanya seorang ahlinya boleh diakses pada satu masa dan semua ahli lain akan mengandungi nilai sampah. |
Peruntukan Memori | |
Memori yang diperlukan untuk menyimpan pembolehubah struktur ialah penjumlahan saiz memori semua ahli. | Memori yang diperlukan untuk menyimpan pembolehubah kesatuan ialah memori yang diperlukan untuk elemen terbesar dalam kesatuan. |
Kata kunci | |
Kata kunci yang digunakan untuk mentakrifkan struktur ialah ‘struct’. | Kata kunci yang digunakan untuk mentakrifkan kesatuan ialah ‘kesatuan’. |
Ringkasan – Struktur vs Kesatuan dalam C
Susun atur digunakan untuk menyimpan elemen data daripada jenis yang sama. Kadangkala adalah perlu untuk menyimpan elemen data jenis yang berbeza dalam lokasi memori yang sama. Bahasa pengaturcaraan C menyediakan struktur dan kesatuan untuk menyelesaikan tugas ini. Kedua-duanya adalah jenis data yang ditentukan pengguna. Memori yang diperlukan untuk menyimpan pembolehubah struktur ialah penjumlahan saiz memori semua ahli. Memori yang diperlukan untuk menyimpan pembolehubah kesatuan ialah memori yang diperlukan untuk elemen terbesar dalam kesatuan. Ini ialah perbezaan antara struktur dan kesatuan dalam C.