Apakah Struktur dalam C ++?
A struct ialah ++ struktur data C yang boleh digunakan untuk menyimpan bersama-sama unsur-unsur jenis data yang berbeza. Dalam C ++, struktur adalah jenis data yang ditentukan pengguna. Struktur membuat jenis data untuk mengelompokkan item dari pelbagai jenis data di bawah satu jenis data.
Sebagai contoh:
Katakan anda perlu menyimpan maklumat mengenai seseorang, nama, kewarganegaraan dan usia mereka. Anda boleh membuat pemboleh ubah seperti nama, kewarganegaraan, dan usia untuk menyimpan data secara berasingan.
Namun, anda mungkin perlu menyimpan maklumat mengenai banyak orang pada masa akan datang. Ini bermaksud pemboleh ubah untuk individu yang berbeza akan dibuat. Contohnya, nama1, kewarganegaraan1, umur1 dan lain-lain. Untuk mengelakkannya, lebih baik membuat struktur.
Dalam tutorial C ++ ini, anda akan belajar:
- Apakah Struktur dalam C ++?
- Bilakah menggunakan Struktur?
- Permulaan Struktur C ++
- Membuat Contoh Struktur
- Mengakses Ahli Struktur
- Petunjuk ke Struktur
- Struct as Function Argument
- Batasan struktur C ++
Bilakah menggunakan Struktur?
Berikut adalah beberapa sebab menggunakan struktur di C ++.
- Gunakan struktur apabila anda perlu menyimpan elemen dari pelbagai jenis data di bawah satu jenis data.
- Struktur C ++ adalah jenis nilai dan bukannya jenis rujukan. Gunakan struktur jika anda tidak berniat mengubah data anda setelah dibuat.
Permulaan Struktur C ++
Untuk membuat struktur C ++, kami menggunakan kata kunci struct, diikuti dengan pengecam. Pengecam menjadi nama struktur. Berikut adalah sintaks untuk membuat struktur C ++:
Sintaks:
struct struct_name{// struct members}
Dalam sintaks di atas, kami telah menggunakan kata kunci struct. Struct_name adalah nama struktur.
Anggota struktur ditambah dengan pendakap kerinting. Anggota ini mungkin tergolong dalam pelbagai jenis data.
Sebagai contoh:
struct Person{char name[30];int citizenship;int age;}
Dalam contoh di atas, Person adalah struktur dengan tiga anggota. Anggota termasuk nama, kewarganegaraan, dan umur. Satu anggota adalah jenis data char, sementara 2 lagi adalah bilangan bulat ketika struktur dibuat, memori tidak diperuntukkan. Memori hanya diperuntukkan setelah pemboleh ubah ditambahkan ke struktur.
Membuat Contoh Struktur
Dalam contoh di atas, kami telah membuat struktur bernama Person. Kita boleh membuat pemboleh ubah struktur seperti berikut:
Person p;
P adalah pemboleh ubah struktur bagi Jenis Orang. Kita boleh menggunakan pemboleh ubah ini untuk mengakses anggota struktur.
Mengakses Ahli Struktur
Untuk mengakses anggota struct, kami menggunakan contoh operator struct dan dot (.). Sebagai contoh, untuk mengakses umur ahli Str Person:
p.age = 27;
Kami telah mencapai usia anggota Str Person menggunakan contoh struct, h. Kami kemudian menetapkan nilai umur ahli menjadi 27.
Contoh 1:
#includeusing namespace std;struct Person{int citizenship;int age;};int main(void) {struct Person p;p.citizenship = 1;p.age = 27;cout << "Person citizenship: " << p.citizenship << endl;cout << "Person age: " << p.age << endl;return 0;}
Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail header iostream dalam program kami untuk menggunakan fungsi yang ditentukan di dalamnya.
- Sertakan ruang nama std untuk menggunakan kelasnya tanpa memanggilnya.
- Buat struktur bernama Person.
- Permulaan badan struktur.
- Buat ahli struktur bernama kewarganegaraan jenis integer.
- Buat ahli struktur bernama umur bilangan bulat.
- Akhir badan struktur.
- Panggil fungsi utama (). Logik program harus ditambahkan dalam badan fungsi ini.
- Buat contoh Orang Struktur dan beri namanya p.
- Tetapkan nilai kewarganegaraan anggota struktur kepada 1.
- Tetapkan nilai umur anggota struktur hingga 27.
- Cetak nilai kewarganegaraan anggota struktur di konsol berserta beberapa teks lain.
- Cetak nilai usia anggota struktur di konsol bersama beberapa teks lain.
- Program harus mengembalikan nilai jika berjaya dijalankan.
- Akhir fungsi utama ().
Petunjuk ke Struktur
Ada kemungkinan untuk membuat penunjuk yang menunjukkan struktur. Ia serupa dengan cara penunjuk yang menunjuk kepada jenis data asli seperti int, float, double, dll. Perhatikan bahawa penunjuk dalam C ++ akan menyimpan lokasi memori.
Contoh 2:
#includeusing namespace std;struct Length{int meters;float centimeters;};int main(){Length *ptr, l;ptr = &l;cout << "Enter meters: ";cin >> (*ptr).meters;cout << "Enter centimeters: ";cin >> (*ptr).centimeters;cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";return 0;}
Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail header iostream dalam program kami untuk menggunakan fungsinya.
- Sertakan ruang nama std dalam program kami untuk menggunakan kelasnya tanpa memanggilnya.
- Buat struktur bernama Panjang.
- Permulaan badan Struktur Panjang.
- Buat ahli struktur bernama meter jenis data integer.
- Buat ahli struktur bernama sentimeter jenis bulat.
- Hujung badan struktur Panjang.
- Panggil fungsi utama ().
- Permulaan fungsi utama () fungsi.
- Buat pemboleh ubah penunjuk * ptr dan pemboleh ubah normal l panjang Jenis.
- Simpan alamat pemboleh ubah l dalam pemboleh ubah penunjuk kami.
- Paparkan mesej di konsol, meminta pengguna memasukkan nilai bagi meter berubah.
- Baca nilai yang dimasukkan oleh pengguna melalui papan kekunci. Meter fungsi anggota di sini diakses menggunakan pemboleh ubah penunjuk.
- Paparkan mesej di konsol, meminta pengguna memasukkan nilai untuk sentimeter berubah-ubah.
- Baca nilai yang dimasukkan oleh pengguna melalui papan kekunci. Sentimeter fungsi anggota di sini diakses menggunakan pemboleh ubah penunjuk.
- Paparkan nilai yang dibaca dari pengguna di konsol di samping beberapa teks lain.
- Program mesti mengembalikan nilai apabila berjaya dilaksanakan.
- Akhir badan utama () fungsi.
Struct as Function Argument
Anda boleh menyampaikan struktur ke fungsi sebagai argumen. Ini dilakukan dengan cara yang sama seperti menyampaikan argumen biasa. Pemboleh ubah struktur juga boleh diteruskan ke fungsi. Contoh yang baik adalah apabila anda perlu memaparkan nilai anggota struktur. Mari tunjukkan ini:
Contoh 3:
#includeusing namespace std;struct Person{int citizenship;int age;};void func(struct Person p);int main(){struct Person p;p.citizenship = 1;p.age = 27;func(p);return 0;}void func(struct Person p){cout << " Person citizenship: " << p.citizenship< Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Sertakan fail header iostream ke dalam fail kami. Kami kemudian akan menggunakan fungsinya tanpa mendapat kesalahan.
- Sertakan ruang nama std dalam program kami untuk menggunakan kelasnya. Kami tidak perlu memanggil ruang nama untuk menggunakan kelasnya.
- Buat struktur bernama Person.
- Permulaan badan Struktur Orang.
- Buat ahli struct Person. Anggota tersebut dinamakan kewarganegaraan dan adalah jenis bulat.
- Buat ahli struct Person. Anggota tersebut dinamakan umur dan terdiri daripada bilangan bulat.
- Hujung badan struktur Person.
- Buat fungsi yang mengambil contoh struct Person, p, sebagai argumen.
- Panggil fungsi utama. {Menandakan permulaan fungsi utama ().
- Buat contoh bagi orang Str dan beri namanya p.
- Akses kewarganegaraan variabel anggota struktur menggunakan contoh struktur, p, dan berikan nilai 1.
- Akses umur variabel anggota struktur menggunakan contoh struktur, p, dan berikan nilai 27.
- Panggil fungsi tersebut dan sampaikan kepada contoh instance Str Person, p, sebagai argumen.
- Fungsi mesti mengembalikan nilai apabila berjaya dilaksanakan.
- Akhir badan utama () fungsi.
- Buat badan fungsi.
- Permulaan fungsi badan.
- Akses nilai kewarganegaraan anggota struktur dan mencetaknya di konsol bersama teks lain.
- Akses nilai umur ahli dan cetak di konsol bersama teks lain.
- Akhir badan fungsi.
Batasan struktur C ++
Berikut adalah had struktur:
- Jenis data struktur tidak boleh diperlakukan seperti jenis data terbina dalam.
- Pengendali seperti + -, dan yang lain tidak dapat digunakan pada pemboleh ubah struktur.
- Struktur tidak menyokong penyembunyian data. Anggota struktur dapat diakses oleh fungsi apa pun tanpa mengira ruang lingkupnya.
- Anggota statik tidak boleh dinyatakan di dalam badan struktur.
- Pembina tidak boleh dibuat di dalam struktur.
Ringkasan:
- Str adalah struktur data yang menyimpan elemen data milik pelbagai jenis.
- Manakala array menyimpan elemen data dari jenis yang serupa, struktur menyimpan elemen data dari pelbagai jenis.
- Struktur harus digunakan apabila elemen data tidak diharapkan dapat mengubah nilai.
- Anggota struktur diakses menggunakan operator titik (.).
- Kita harus membuat contoh struktur.
- Untuk membuat struktur C ++, kami menggunakan kata kunci struct.
- Penunjuk yang menunjuk ke suatu struktur dibuat serupa dengan bagaimana penunjuk yang menunjuk ke jenis biasa dibuat.
- Struktur dapat disampaikan sebagai argumen kepada fungsi dengan cara yang sama fungsi biasa dilalui.