Perbedaan Antara Struktur dan Persatuan Perbedaan Antara

Anonim

Baik struktur dan persatuan adalah jenis data yang ditetapkan pengguna dalam Bahasa C dan secara konseptual sama, namun masih berbeda dalam beberapa hal seperti cara memori dialokasikan ke anggota mereka. Mereka dinyatakan sama namun fungsinya berbeda. Mereka memungkinkan pengguna menggabungkan tipe data yang berbeda dengan satu nama. Sementara lokasi memori terpisah digunakan untuk setiap anggota saat mendeklarasikan variabel struktur, anggota variabel serikat yang berbeda berbagi lokasi memori yang sama. Mari pelajari perbedaan antara struktur dan serikat adalah detail.

Apa itu Struktur?

Struktur adalah tipe data yang ditetapkan pengguna lainnya di C yang memungkinkan pengguna menggabungkan tipe data dari jenis yang berbeda menjadi satu jenis di blok memori. Struktur dapat berisi tipe data sederhana dan kompleks yang saling berkaitan, yang sebaliknya, tidak masuk akal. Setiap anggota dalam struktur mendapat lokasi memori tersendiri sehingga bisa diakses dan diambil setiap saat.

Struktur digunakan saat banyak data memerlukan pengelompokan seperti direktori yang menyimpan informasi tentang banyak anggota dalam buku atau buku alamat yang menyimpan semua informasi tentang satu kontak - nama, alamat, nomor kontak, dan sebagainya. Alamat masing-masing anggota akan berada dalam urutan menaik yang berarti memori setiap anggota akan dimulai dengan nilai offset yang berbeda. Mengubah nilai satu anggota tidak akan berpengaruh pada anggota lainnya.

Kata kunci 'struct' digunakan untuk mendefinisikan struktur tipe data yang berbeda dengan satu nama. Misalnya, jika Anda ingin membuat database karyawan, Anda harus menyimpan nama karyawan, usia, telepon, dan rincian gaji di bawah satu entitas. Hal ini dilakukan dengan kata kunci 'struct', yang kemudian memberitahu compiler bahwa struktur telah dideklarasikan.

struct employee {

nama string; Umur string

;

string telepon;

gaji string;

} emp1, emp2;

Di sini, 'karyawan' adalah nama struktur dan dua variabel 'emp1' dan 'emp2' diciptakan dari tipe 'karyawan'. Penutup penutup harus diikuti dengan titik koma (;).

Anggota struktur dapat diakses oleh dua jenis operator:

  1. Operator anggota
  2. Struktur operator penunjuk

Apakah itu Union?

Ini adalah tipe data khusus yang digunakan di C yang memungkinkan pengguna menyimpan tipe data dari berbagai jenis di lokasi memori yang sama. Persatuan sangat mirip dengan struktur dan dapat didefinisikan dengan mengganti kata kunci 'struct' dengan kata kunci 'union'. Para anggota melapisi memori satu sama lain dalam sebuah serikat pekerja dan ini cukup besar untuk disesuaikan dengan semua anggotanya.

Bila sebuah variabel dikaitkan dengan penyatuan, kompilator mengalokasikan memori dengan mempertimbangkan ukuran memori terbesar, sehingga ukuran serikat sama dengan ukuran anggota data terbesar.Serikat pekerja dapat didefinisikan dengan banyak anggota, namun hanya satu anggota yang memiliki nilai pada beberapa waktu tertentu.

Alamatnya sama untuk semua anggota sebuah serikat pekerja yang berarti setiap anggota memulai dengan nilai offset yang sama. Dan mengubah nilai satu anggota akan mempengaruhi nilai anggota lainnya. Serikat pekerja dapat digunakan bila Anda ingin menyimpan sesuatu yang merupakan salah satu dari beberapa tipe data.

serikat pekerja {

nama char [32];

usia tua;

gaji mengambang;

};

Disini kata kunci 'serikat' mendefinisikan serikat pekerja yang sangat mirip dengan deklarasi struktur. Variabel tersebut dapat menyimpan nilai string yaitu 'nama karyawan', nilai integer yang merupakan 'usia karyawan', atau float yang mewakili 'gaji karyawan'.

Perbedaan Antara Struktur dan Persatuan

1. Kata kunci

Kata kunci 'struct' digunakan untuk mendefinisikan struktur sedangkan kata kunci 'union' digunakan untuk mendefinisikan sebuah serikat pekerja.

2. Alokasi Memori

Ruang memori terpisah diberikan untuk anggota dalam sebuah struktur dan anggota memiliki alamat yang berbeda yang tidak berbagi memori. Sebuah serikat, di sisi lain, berbagi ruang memori yang sama untuk semua anggotanya sehingga lokasi memori bersama dialokasikan.

3. Akses Anggota

Sebuah serikat menyimpan satu nilai setiap saat untuk semua anggotanya membuat aksesibilitas hanya kepada satu anggota pada satu waktu. Sementara beberapa nilai dapat disimpan dalam struktur sehingga setiap nilai anggota dapat diakses dan diambil setiap saat.

4. Ukuran

Ukuran struktur sama dengan jumlah semua anggota atau lebih, sedangkan ukuran serikat sama dengan ukuran anggota ukuran terbesar.

5. Inisialisasi

Dalam sebuah struktur, beberapa anggota dapat diinisialisasi sekaligus, sementara di sebuah serikat pekerja, hanya anggota pertama yang dapat diinisialisasi dengan nilai dari jenisnya.

5. Nilai

Struktur dapat menyimpan nilai yang berbeda dari semua anggota dan perubahan nilai satu anggota tidak akan berpengaruh pada nilai anggota lainnya. Sementara serikat pekerja menyimpan nilai yang sama untuk semua anggotanya dan perubahan nilai satu anggota akan mempengaruhi nilai yang lain.

Struktur vs. Union

Struktur Union
Kata kunci struktur digunakan untuk menentukan struktur. Kata kunci Union digunakan untuk mendefinisikan sebuah serikat pekerja.
Anggota tidak berbagi memori dalam struktur. Anggota berbagi ruang memori dalam sebuah serikat pekerja.
Setiap anggota dapat diambil kapan saja dalam struktur. Hanya satu anggota yang bisa diakses sekaligus dalam satu kesatuan.
Beberapa anggota struktur dapat diinisialisasi sekaligus. Hanya anggota pertama yang bisa diinisialisasi.
Ukuran struktur sama dengan jumlah ukuran masing-masing anggota. Ukuran serikat sama dengan ukuran anggota terbesar.
Mengubah nilai satu anggota tidak akan mempengaruhi nilai yang lain. Perubahan nilai satu anggota akan mempengaruhi nilai anggota lainnya.
Menyimpan nilai yang berbeda untuk semua anggota. Menyimpan nilai yang sama untuk semua anggota.

Ringkasan

  • Baik struktur dan serikat adalah tipe data yang ditetapkan pengguna di C yang secara fungsional dan konseptual sama namun sangat berbeda dalam beberapa hal.
  • Keduanya mengandung variabel tipe data yang berbeda namun mereka menggunakan sintaks yang sama untuk deklarasi variabel dan mengakses anggota. Sementara struktur didefinisikan oleh kata kunci 'struct', sebuah serikat didefinisikan oleh kata kunci 'serikat'.
  • Setiap anggota mendapat lokasi memori terpisah dalam struktur, sedangkan dalam sebuah kesatuan, total ruang memori setara dengan anggota ukuran terbesar. Semua anggota berbagi ruang memori yang sama dalam sebuah serikat pekerja.
  • Setiap anggota dalam urutan apapun dapat diakses dalam struktur, sedangkan dalam sebuah serikat kerja, hanya variabel tersebut yang dapat diakses yang nilainya baru saja disimpan.