Perbezaan Antara Struktur dan Kesatuan dalam C

Perbezaan Utama - Struktur vs Kesatuan di C
 

Arahan adalah data tersusun yang disokong oleh bahasa C. Arahan boleh digunakan untuk menyimpan elemen data jenis yang sama. Sekiranya terdapat pernyataan sebagai int tanda [10]; maka markah adalah array yang boleh menyimpan sepuluh tanda dan semuanya adalah integer. Kadang-kadang diperlukan elemen data menyimpan jenis yang berlainan di lokasi memori yang sama. Sebagai contoh, pekerja boleh mempunyai ID pekerja, nama, jabatan, umur dll. Mereka adalah jenis data yang berbeza. Oleh itu, adalah perlu untuk mempunyai kaedah untuk menyimpan pelbagai elemen data sebagai unit tunggal. Struktur dan Kesatuan dalam C digunakan untuk menyimpan unsur data dari pelbagai jenis dalam lokasi ingatan yang sama. Struktur dan kesatuan adalah serupa tetapi mereka sangat membezakan disebabkan oleh peruntukan memori. Memori yang diperlukan untuk menyimpan pembolehubah struktur adalah penjumlahan saiz memori semua ahli. Memori yang diperlukan untuk menyimpan pembolehubah kesatuan adalah ingatan yang diperlukan untuk elemen terbesar dalam kesatuan. Itu dia perbezaan utama antara struktur dan kesatuan dalam C. Artikel ini membahas perbezaan antara struktur dan kesatuan dalam C.

KANDUNGAN

1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apakah Struktur dalam C
3. Apakah Kesatuan di C
4. Kesamaan Antara Struktur dan Kesatuan dalam C
5. Side by Side Comparison - Struktur vs Kesatuan dalam C dalam Borang Tabular
6. Ringkasan

Apakah Struktur dalam C?

Struktur adalah jenis data yang ditentukan oleh pengguna dalam C. Ia membantu untuk menggabungkan item data dari pelbagai jenis. Struktur boleh mewakili rekod. Pelajar boleh mempunyai student_id, student_name dan sebagainya. Daripada menyimpan setiap pembolehubah secara berasingan, semua item data yang berbeza ini boleh menjadi padat dalam satu unit menggunakan struktur. Ia ditakrifkan menggunakan kata kunci 'struct'. Dalam struktur, semua anggotanya boleh diakses pada bila-bila masa. Berikut ini membuat jenis data yang diperoleh Pelajar Str.

struct Student

intstudent_id;

char student_name [20];

;

Untuk struktur di atas, pembolehubah boleh diisytiharkan seperti berikut.

struct Student student1, student2, student3;

Terdapat dua kaedah untuk mengakses ahli-ahli struktur. Itu adalah dengan menggunakan pengendali anggota (.) Dan struktur penunjuk penunjuk (->). Ahli boleh diakses menggunakan struktur_variable_name. nama ahli. Jika programmer mahu mengakses nama pelajar 2, maka dia boleh menulis pernyataan sebagai printf (student2.student_namename);

Rujuk program di bawah dengan struktur.

Rajah 01: Program C dengan struktur

Menurut program di atas, Pelajar adalah satu struktur. Ia mengandungi student_id dan student_name. Dua pembolehubah jenis struktur diisytiharkan dalam program utama. Mereka dipanggil pelajar1 dan pelajar2. ID pelajar diberikan dengan nilai 1 menggunakan operator anggota sebagai student1.student_id = 1. Nama "Ann" adalah rentetan. Oleh itu, ia disalin ke ahli student_name menggunakan fungsi salin strcpy. Id dan nama diberikan kepada pelajar2 dengan cara yang sama. Akhirnya, nilai tersebut dicetak menggunakan pengendali anggota.

Jumlah ingatan yang diperlukan untuk menyimpan pembolehubah struktur adalah jumlah saiz memori semua ahli. Student_id mengandungi 4 bait dan student_name mengandungi 20 bait (satu bait masing-masing untuk aksara). Jumlah 24 bait adalah jumlah saiz memori yang diperlukan oleh struktur.

Apakah Kesatuan di C?

Kesatuan adalah jenis data yang ditentukan oleh pengguna di C. Ia membantu menyimpan jenis data yang berbeza di lokasi ingatan yang sama. Buku boleh mempunyai sifat seperti book_name, harga dll. Daripada membuat pembolehubah bagi setiap daripada mereka, kesatuan boleh digunakan untuk menyusun semua jenis data yang berlainan ke dalam satu unit menggunakan kesatuan. Ia ditakrif menggunakan kata kunci 'kesatuan'. Berikut ini mencipta Book union data yang diperoleh.

unionBook

nama char [20];

harga berganda;

;

Untuk kesatuan di atas, pembolehubah boleh diisytiharkan seperti berikut.

buku Buku serahan1, book2;

Terdapat dua kaedah untuk mengakses ahli kesatuan. Itu adalah dengan menggunakan pengendali anggota (.) Dan struktur penunjuk penunjuk (->). Ahli boleh diakses menggunakan union_variable_name. nama ahli. Jika programmer ingin mengakses nama buku1, 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 itu adalah kesatuan. Buku1 adalah pemboleh ubah kesatuan jenis. Nama dan harga diberikan nilai. Dalam kesatuan, hanya satu daripada anggotanya yang boleh diakses pada satu masa dan semua ahli lain akan mempunyai nilai sampah. Nilai id tidak mencetak dengan betul tetapi nilai harga dicetak dengan betul.

Rajah 03: Program Modified C dengan kesatuan

Menurut program di atas, Buku adalah kesatuan. Buku1 dan book2 adalah pemboleh ubah 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 unsur terbesar kesatuan. Dalam program di atas, pembolehubah nama adalah 20 bait. Ia lebih besar daripada harga. Jadi, peruntukan memori untuk kesatuan adalah 20 bait.

Apakah Kesamaan Antara Struktur dan Kesatuan dalam C?

  • Kedua-dua Struktur dan Kesatuan dalam C adalah jenis data yang ditentukan pengguna.
  • Kedua-dua Struktur dan Kesatuan dalam C boleh digunakan untuk menyimpan jenis data yang berbeza dalam lokasi ingatan yang sama.

Apakah Perbezaan Antara Struktur dan Kesatuan dalam C?

Struktur vs Kesatuan dalam C

Struktur adalah datatype yang ditakrifkan pengguna dalam bahasa C yang membolehkan menggabungkan data dari pelbagai jenis bersama-sama. Kesatuan adalah jenis data yang ditakrifkan oleh pengguna dalam bahasa C yang membolehkan menggabungkan data dari pelbagai jenis bersama-sama.
 Kebolehcapaian
Dalam struktur, semua ahli boleh diakses pada bila-bila masa. Dalam satu kesatuan, hanya satu daripada anggotanya boleh diakses pada satu masa dan semua ahli lain akan mengandungi nilai sampah.
Alokasi Memori
Memori yang diperlukan untuk menyimpan pembolehubah struktur adalah penjumlahan saiz memori semua ahli. Memori yang diperlukan untuk menyimpan pembolehubah kesatuan adalah ingatan yang diperlukan untuk elemen terbesar dalam kesatuan.
 Kata kunci
Kata kunci yang digunakan untuk menentukan struktur adalah 'struct'. Kata kunci yang digunakan untuk menentukan kesatuan adalah 'kesatuan'.

Ringkasan - Struktur vs Kesatuan di C

Arahan digunakan untuk menyimpan elemen data jenis yang sama. Kadang-kadang perlu menyimpan elemen data dari pelbagai jenis di lokasi ingatan 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 adalah penjumlahan saiz memori semua ahli. Memori yang diperlukan untuk menyimpan pembolehubah kesatuan adalah ingatan yang diperlukan untuk elemen terbesar dalam kesatuan. Ini adalah perbezaan antara struktur dan kesatuan dalam C.

Rujukan:

1.Point, Tutorial. "Struktur dalam C.", Tutorial Point, 15 Ogos 2017. Boleh didapati di sini 
2.Point, Tutorial. "Kesatuan di C." , Titik Tutorial, 15 Ogos 2017. Boleh didapati di sini