>> SPEAKER 1: Mari kita menulis sebuah program yang meminta pengguna untuk nama dan
rumah dari tiga mahasiswa.
Sekarang, untuk menyimpan nama-nama dan rumah kita bisa menggunakan apa, enam variabel.
Tiga string untuk nama, dan lain tiga senar untuk rumah,
tapi kita sudah tahu bahwa kita dapat membersihkan kode dengan menggunakan array sebagai gantinya,
misalnya array ukuran 3 untuk tiga nama, dan berbagai lain
ukuran 3 untuk rumah.
Tapi ternyata kita bisa membersihkan ini lebih jauh lagi, dan benar-benar menjaga mereka
nama dan rumah bersama-sama, sehingga nama siswa dan rumah nya
entah bagaimana dikemas, sehingga untuk berbicara, ke dalam variabel yang sama.
>> Untuk melakukan hal ini, meskipun, kita perlu mendeklarasikan tipe data kita sendiri, jenis kita sendiri di C,
bahwa penulis C tidak selalu memikirkan tahun yang lalu.
Untuk melakukan hal ini kita dapat menggunakan kata kunci typedef, bersama dengan
struct kata kunci lainnya.
Mari kita lihat.
Di dalam structs.h, aku sudah mendapatkan dimulai oleh
termasuk perpustakaan CS50.
Saya selanjutnya akan mengetik struct typedef, dan kemudian penjepit keriting.
Di dalam struct, aku akan menentukan bahwa seorang siswa harus memiliki
string disebut nama, dan lain string disebut rumah.
Aku akan kemudian tutup kurung kurawal saya, dan menentukan bahwa nama
tipe data baru akan menjadi murid.
Dengan kata lain, melalui sintaks ini telah saya mendeklarasikan tipe data baru dari saya sendiri
yang tidak ada saat yang lalu, dan dalam tipe data ini adalah dua data
ladang atau anggota data, salah satu disebut nama, satu rumah yang disebut, yang keduanya
adalah tipe string.
>> Mari kita sekarang menggunakan jenis ini dalam sebuah program yang sebenarnya.
Dalam structs0.c, aku sama mendapat sendiri sudah mulai dengan beberapa
kode boilerplate, dan aku sekarang akan menggunakan data ini
ketik mahasiswa, sebagai berikut.
Saya pertama akan mendeklarasikan array tipe mahasiswa, aku akan
memanggil siswa berbagai -
jamak -
dan saya akan menentukan bahwa ukurannya akan tiga, yang, pemberitahuan, adalah nilai
para MAHASISWA konstan -
di semua ibukota -
bahwa saya telah menyatakan di sini, sebelumnya dalam file.
Sekarang mari kita iterate atas tiga siswa, dan meminta pengguna untuk
nama dan rumah-rumah mereka.
>> untuk int saya mendapatkan 0, i kurang Selain itu konstan, i + +.
Dan sekarang dalam tubuh ini untuk lingkaran, aku akan mencetak sesuatu
seperti nama siswa.
Saya kemudian akan benar-benar mendapatkan bahwa nama siswa dengan menentukan
siswa braket i.
Dengan kata lain saya ingin-i mahasiswa dalam array disebut siswa, tapi sekarang
Saya ingin mendapatkan yang ke-i siswa nama, dan untuk melakukan hal ini, saya akan menggunakan
tersebut. operator, dalam rangka untuk mendapatkan di dalam bidang tertentu struct.
Jadi saya menentukan siswa braket i nama. mendapat nilai kembali dari GetString ().
Sementara itu, aku akan mencetak sesuatu yang mirip, mengatakan siswa
rumah, dan sekarang aku akan menentukan bahwa bidang rumah siswa-i
akan mendapatkan nilai pengembalian panggilan lain untuk GetString ().
>> Sekarang mari kita melakukan sesuatu dengan tiga ini nama dan rumah-rumah siswa,
sesuatu yang sederhana seperti pencetakan masing-masing dalam sebuah kalimat.
untuk int i mendapatkan 0, sekali lagi saya kurang dari mahasiswa, i + +, printf "% s adalah% s.
backslash n ", dan sekarang biarkan aku pasang di nilai-nilai dari dua bidang,
siswa braket i nama., koma, siswa braket i. house, dekat
paren, titik koma.
>> Dan sekarang saya perlu melakukan satu hal lagi.
Di bagian bawah file ini, saya perlu membebaskan memori yang dialokasikan
di balik layar oleh GetSring (), yang tentu saja panggilan malloc, untuk
mengalokasikan memori untuk string jenis pengguna.
Tapi untuk ini adalah sederhana.
untuk int saya mendapatkan 0, i kurang dari mahasiswa, i + +, dan di dalam tubuh
ini untuk loop, aku hanya akan menyediakan gratis siswa braket i nama.,
dan siswa bebas braket i. house.
>> Sekarang, kita sudah jelas menggunakan tiga untuk loop dalam program ini, ketika benar-benar aku
bisa saja menggunakan satu, tapi ini hanya demi demonstrasi, sehingga
kita dapat menentukan dalam tiga berbeda langkah apa sebenarnya yang kita lakukan.
Kami pertama mendapatkan nama dan rumah untuk masing-masing siswa, kami kemudian
mencetak nama dan rumah untuk masing-masing tiga siswa, dan
maka kita akan membebaskan memori digunakan oleh masing-masing siswa.
Tapi tentunya kita bisa saja menggabungkan ini menjadi satu besar untuk loop.
>> Sekarang mari kita simpan, kompilasi, dan menjalankan program ini.
membuat structs 0. / structs 0, siswa nama, mari kita menyediakan David, dia akan hidup
di Mather House, nama siswa, mari kita Lauren mengatakan, dia akan tinggal di Leverett
House, nama siswa, Rob, dia akan tinggal di Kirkland House.
Dan memang, David berada di Mather, Lauren adalah di Leverett,
dan Rob di Kirkland.