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.