Perbezaan Antara Struktur dan Kesatuan

Kedua-dua struktur dan kesatuan adalah jenis data yang ditentukan pengguna dalam Bahasa C dan secara konseptual sama, namun, mereka masih berbeza dalam beberapa cara seperti ingatan cara yang diperuntukkan kepada ahli mereka. Mereka diisytiharkan sama tetapi mereka berfungsi dengan berbeza. Mereka membenarkan pengguna menggabungkan jenis data yang berbeza di bawah satu nama. Walaupun lokasi memori berasingan digunakan untuk setiap ahli apabila mengisytiharkan pemboleh ubah struktur, anggota berbeza dari pembolehubah kesatuan berkongsi lokasi ingatan yang sama. Mari kita perhatikan perbezaan antara struktur dan kesatuan adalah terperinci.

Apakah Struktur?

Struktur hanyalah jenis data yang ditentukan oleh pengguna dalam C yang membolehkan pengguna menggabungkan jenis data jenis yang berlainan ke dalam satu jenis dalam blok ingatan. Struktur boleh mengandungi kedua-dua jenis data mudah dan rumit yang berkaitan dengan satu sama lain, yang sebaliknya, tidak masuk akal. Setiap ahli dalam struktur mendapatkan lokasi ingatannya sendiri supaya ia boleh diakses dan diperoleh pada bila-bila masa.

Struktur digunakan apabila banyak data memerlukan pengelompokan seperti direktori yang menyimpan maklumat mengenai banyak ahli dalam buku atau buku alamat yang menyimpan semua maklumat mengenai satu kenalan - nama, alamat, nombor telefon, dan sebagainya. Alamat setiap ahli akan berada dalam urutan menaik yang bermaksud memori setiap ahli akan bermula pada nilai-nilai offset yang berbeza. Mengubah nilai seorang ahli tidak akan memberi kesan kepada ahli-ahli lain.

Kata kunci 'struct' digunakan untuk menentukan struktur jenis data yang berlainan di bawah satu nama. Sebagai contoh, jika anda ingin membuat pangkalan data pekerja, anda perlu menyimpan nama pekerja, umur, telefon, dan butiran gaji di bawah entiti tunggal. Ini dilakukan oleh kata kunci 'struct', yang kemudian memberitahu pengkompil bahawa struktur telah diumumkan.

struct employee

nama rentetan;

umur rentetan;

telefon rentetan;

gaji rentetan;

emp1, emp2;

Di sini, 'pekerja' adalah nama struktur dan dua pembolehubah 'emp1' dan 'emp2' dibuat dari jenis 'pekerja'. Pendakap penutup hendaklah diikuti dengan titik koma (;).

Ahli-ahli struktur boleh diakses oleh dua jenis pengendali:

  1. Pengendali ahli
  2. Operator penunjuk struktur

Apa itu Kesatuan?

Ia adalah jenis data khas yang digunakan dalam C yang membolehkan pengguna menyimpan jenis data dari pelbagai jenis dalam lokasi memori yang sama. Kesatuan agak serupa dengan struktur dan dapat ditakrifkan dengan menggantikan kata kunci 'struct' dengan kata kunci 'kesatuan'. Para ahli melapisi kenangan satu sama lain dalam kesatuan dan cukup besar untuk menyesuaikan semua anggotanya.

Apabila pembolehubah dikaitkan dengan kesatuan, pengkompil mengagihkan memori dengan mempertimbangkan saiz memori terbesar, jadi saiz kesatuan adalah sama dengan saiz ahli data terbesar. Kesatuan boleh didefinisikan dengan banyak ahli, tetapi hanya satu ahli yang mengandungi nilai pada setiap masa tertentu.

Alamatnya sama untuk semua ahli kesatuan yang bermaksud setiap ahli bermula pada nilai mengimbangi yang sama. Dan mengubah nilai satu ahli akan mempengaruhi nilai ahli lain. Kesatuan boleh digunakan apabila anda ingin menyimpan sesuatu yang merupakan salah satu daripada beberapa jenis data.

pekerja kesatuan

nama jen [32];

umur int;

gaji terapung;

;

Di sini kata kunci 'kesatuan' mendefinisikan kesatuan yang sangat mirip dengan pengisytiharan struktur. Pembolehubah boleh menyimpan nilai rentetan yang merupakan 'nama pekerja', nilai integer yang merupakan 'umur pekerja', atau terapung yang mewakili 'gaji pekerja'.

Perbezaan Antara Struktur dan Kesatuan

1. Kata kunci

Kata kunci 'struct' digunakan untuk menentukan struktur manakala kata kunci 'kesatuan' digunakan untuk menentukan kesatuan.

2. Peruntukan Memori

Ruang memori berasingan dipisahkan untuk ahli dalam struktur dan ahli mempunyai alamat yang berbeza yang tidak berkongsi ingatan. Kesatuan, sebaliknya, berkongsi ruang ingatan yang sama untuk semua anggotanya sehingga lokasi memori yang dikongsi diperuntukkan.

3. Akses Ahli

Kesatuan menyimpan satu nilai pada satu masa untuk semua anggotanya membuat akses kepada hanya satu ahli pada satu masa. Walaupun pelbagai nilai boleh disimpan dalam struktur supaya setiap nilai ahli boleh diakses dan diperoleh pada bila-bila masa.

4. Saiz

Saiz struktur bersamaan dengan jumlah saiz semua ahli atau lebih, sedangkan saiz kesatuan adalah sama dengan saiz anggota saiz terbesar.

5. Inisialisasi

Dalam struktur, beberapa ahli boleh dimulakan sekaligus, sementara dalam kesatuan, hanya ahli pertama yang boleh diinisialisasi dengan nilai jenisnya.

5. Nilai

Struktur boleh menyimpan nilai yang berbeza dari semua ahli dan perubahan dalam nilai satu ahli tidak akan mempunyai kesan ke atas nilai ahli-ahli lain. Sedangkan kesatuan menyimpan nilai yang sama untuk semua anggotanya dan perubahan nilai satu ahli akan mempengaruhi nilai yang lain.

Struktur vs Kesatuan

Struktur Kesatuan
Kata kunci struktur digunakan untuk menentukan struktur. Kata kunci kesatuan digunakan untuk menentukan kesatuan.
Ahli tidak berkongsi memori dalam struktur. Ahli kongsi ruang memori dalam kesatuan.
Mana-mana ahli boleh diambil pada bila-bila masa dalam struktur. Hanya satu ahli boleh diakses pada satu masa dalam kesatuan.
Beberapa ahli struktur boleh dimulakan sekali gus. Hanya ahli pertama yang boleh dimulakan.
Saiz struktur adalah sama dengan jumlah saiz setiap ahli. Ukuran kesatuan adalah sama dengan saiz ahli terbesar.
Mengubah nilai satu ahli tidak akan menjejaskan nilai yang lain. Perubahan nilai seorang ahli akan mempengaruhi nilai ahli lain.
Menyimpan nilai yang berbeza untuk semua ahli. Menyimpan nilai yang sama untuk semua ahli.

Ringkasan

  • Kedua-dua struktur dan kesatuan adalah jenis data yang ditentukan pengguna dalam C yang secara fungsional dan konseptual sama tetapi agak berbeza dalam beberapa cara.
  •  Kedua-duanya mengandungi pembolehubah jenis data yang berlainan tetapi mereka menggunakan sintaks yang sama untuk pengisytiharan pembolehubah dan mengakses ahli. Walaupun struktur ditakrifkan oleh kata kunci 'struct', kesatuan ditakrifkan oleh kata kunci 'kesatuan'.
  • Setiap ahli mendapat lokasi memori berasingan dalam struktur, sedangkan dalam kesatuan, jumlah ruang ingatan adalah bersamaan dengan ahli saiz terbesar. Semua ahli berkongsi ruang ingatan yang sama dalam kesatuan.
  • Mana-mana ahli dalam mana-mana urutan boleh diakses dalam struktur, sedangkan dalam kesatuan, hanya pembolehubah itu boleh diakses nilai yang baru disimpan.