Mengapa Rujukan ialah Alias untuk Pemboleh Ubah
Perkenalkan rujukan sebagai alias pada masa kompilasi yang tidak boleh ditetapkan semula atau menjadi NULL.
Mengapa Rujukan ialah Alias untuk Pemboleh Ubah ialah pelajaran C++ Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran C++ Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Apakah Itu Rujukan
Rujukan ialah nama alternatif pada masa kompilasi untuk pemboleh ubah lain. Ia bukan pointer dan bukan salinan — ia objek yang sama dengan nama yang berbeza.
Sintaks Rujukan
Gunakan & selepas jenis. Rujukan mesti dimulakan semasa pengisytiharan dan tidak boleh dipautkan semula.
int x = 10;
int& ref = x; // ref is an alias for x
ref = 20; // x is now 20Perbandingan dengan Pointer
Rujukan dan pointer kedua-duanya membuat capaian tidak langsung, tetapi:
- Rujukan mesti dimulakan; pointer boleh bernilai null
- Rujukan tidak boleh ditugaskan semula kepada objek lain
- Rujukan tidak pernah menggunakan
*atau->— rupanya seperti pemboleh ubah biasa
Tiada Pemautan Semula
Setelah dipautkan, rujukan sentiasa merujuk kepada objek yang sama. Menetapkan nilai kepadanya mengubah nilai asas, bukannya rujukan itu sendiri.
int a = 1, b = 2;
int& r = a;
r = b; // a becomes 2, r still refers to aRujukan Mempunyai Alamat yang Sama
Rujukan berkelakuan seolah-olah ia ialah pemboleh ubah asal. Mendapatkan alamatnya memberikan alamat objek yang dirujuk.
int x = 42;
int& r = x;
std::cout << (&r == &x); // 1 (true)Rujukan Const
Rujukan const ialah nama samaran baca sahaja. Ia berguna untuk menghantar objek besar tanpa menyalinnya.
void print(const std::string& s) {
std::cout << s; // can read, not modify
}Memautkan Rujukan Const kepada Objek Sementara
Rujukan const memanjangkan hayat objek sementara sehingga hayat rujukan itu sendiri — berguna dalam ungkapan.
const std::string& greeting = std::string("Hi");
std::cout << greeting; // validRujukan sebagai Jenis Pulangan
Fungsi boleh memulangkan rujukan — berguna untuk merangkaikan panggilan atau memberikan capaian terus kepada ahli. Berhati-hati apabila memulangkan rujukan kepada pemboleh ubah tempatan!
int& at(std::vector<int>& v, size_t i) {
return v[i];
}
at(v, 0) = 99; // modifies v[0]Jangan Pernah Memulangkan Rujukan kepada Pemboleh Ubah Tempatan
Pemboleh ubah tempatan itu musnah apabila fungsi dipulangkan; rujukan tersebut menjadi tergantung. Ini ialah tingkah laku yang tidak ditakrifkan.
// BUG
int& bad() {
int x = 10;
return x; // x dies here
}Rujukan dalam for Berasaskan Julat
for berasaskan julat menggunakan rujukan secara tersirat. auto& mendapatkan rujukan; auto mendapatkan salinan.
Rujukan dalam Pengikatan Berstruktur
Pengikatan berstruktur C++17 boleh dibuat mengikut nilai, mengikut rujukan atau mengikut rujukan const.
std::pair<int, int> p = {1, 2};
auto [a, b] = p; // copies
auto& [x, y] = p; // references — modifying x changes p.firstSemakan Pantas
Mengapakah rujukan tidak boleh dipautkan semula kepada pemboleh ubah lain kemudian?
Ringkasan
Rujukan ialah nama alternatif pada masa kompilasi yang mesti dimulakan dan tidak boleh dipautkan semula. Rupanya seperti pemboleh ubah biasa, tidak pernah null dan tidak pernah ditugaskan semula. Gunakan rujukan const untuk paparan baca sahaja.
Pelajari C++ dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Mengapa Rujukan ialah Alias untuk Pemboleh Ubah” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran C++ Academy, termasuk “Mengapa Rujukan ialah Alias untuk Pemboleh Ubah”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus C++ Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mengapa Rujukan ialah Alias untuk Pemboleh Ubah”?
Perkenalkan rujukan sebagai alias pada masa kompilasi yang tidak boleh ditetapkan semula atau menjadi NULL. Anda berlatih C++ Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan C++ Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran C++ Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Mengapa Rujukan ialah Alias untuk Pemboleh Ubah” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran C++ Academy ini?
Ya. Setiap pelajaran C++ Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mengapa Rujukan ialah Alias untuk Pemboleh Ubah
- Hantar mengikut Nilai berbanding Hantar mengikut Rujukan
- Rujukan const dan Masa untuk Menggunakannya
- Jangka Hayat Rujukan dan Rujukan Tergantung