C Contoh rujukan
Rujukan adalah alias untuk pembolehubah, yang mesti diisytiharkan apabila diisytiharkan dan tidak boleh ditolak. 1. Rujukan berkongsi alamat memori yang sama melalui alias. Mengubahsuai sebarang nama akan menjejaskan nilai asal; 2. Rujukan boleh digunakan untuk mencapai lulus dua arah dan mengelakkan salinan overhead; 3. Rujukan tidak boleh kosong dan mempunyai tatabahasa, dan tidak mempunyai keupayaan untuk menunjuk semula berbanding dengan petunjuk; 4. 5. Rujukan pembolehubah tempatan tidak boleh dikembalikan untuk mengelakkan kesilapan rujukan. Menguasai kutipan adalah asas utama untuk memahami C. Modern C.
Dalam C, rujukan adalah alias, iaitu nama lain dari pembolehubah sudah ada. Dengan rujukan, anda boleh memanipulasi data dalam memori yang sama dengan nama lain. Rujukan mesti dimulakan pada pengisytiharan dan sasaran rujukan tidak dapat diubah setelah terikat kepada pembolehubah.

Berikut adalah contoh rujukan C yang jelas untuk membantu anda memahami penggunaan asasnya:
✅ Contoh sintaks petikan asas
#include <iostream> menggunakan ruang nama STD; int main () { int nilai = 100; // Buat rujukan kepada nilai int & ref = nilai; cout << "nilai:" << nilai << endl; // output: 100 cout << "ref:" << ref << endl; // output: 100 // Ubah suai nilai ref = 200 dengan rujukan; cout << "selepas ref = 200:" << endl; cout << "nilai:" << nilai << endl; // output: 200 cout << "ref:" << ref << endl; // output: 200 // secara langsung mengubah suai nilai pembolehubah asal = 300; cout << "selepas nilai = 300:" << endl; cout << "nilai:" << nilai << endl; // output: 300 cout << "ref:" << ref << endl; // output: 300 kembali 0; }
Penerangan :
ref
adalah rujukan (alias)value
, yang menunjuk kepada memori yang sama. Tidak kira nama mana yang diubahsuai, yang lain akan mencerminkan perubahan.
✅ Gunakan rujukan dalam fungsi (elakkan menyalin dan melaksanakan pas dua hala)
#include <iostream> menggunakan ruang nama STD; // lulus parameter menggunakan rujukan untuk mengelakkan menyalin objek besar, dan juga mengubah suai nilai void nilai asal (int & a, int & b) { int temp = a; A = B; b = temp; } int main () { int x = 10, y = 20; cout << "sebelum swap: x =" << x << ", y =" << y << endl; swap (x, y); // Apa yang sebenarnya diluluskan adalah pemboleh ubah itu sendiri (oleh alias) cout << "selepas swap: x =" << x << ", y =" << y << endl; kembali 0; }
Output :
Sebelum menukar: x = 10, y = 20 Selepas swap: x = 20, y = 10
Titik Utama : Oleh kerana parameter adalah rujukan, fungsi dapat mengubah secara langsung pembolehubah pemanggil untuk melaksanakan "lulus dengan rujukan".
✅ Sebutharga vs ringkasan perbandingan point-to-point
ciri | Rujukan | Penunjuk |
---|---|---|
Sama ada ia mesti dimulakan | Ya (mesti terikat apabila diisytiharkan) | tidak |
Bolehkah ia dibangkitkan | Tidak (hanya mengikat sekali) | Ya (boleh menunjuk ke alamat yang berbeza) |
Adakah ia tidak dapat dibatalkan | Tidak (tidak "rujukan kosong") | Ya (ada nullptr) |
Sintaks Ringkas | Lebih ringkas, gunakan seperti pembolehubah biasa | Perlu * dan & beroperasi |
✅ rujukan const - lulus parameter dengan selamat
void printValue (const int & val) { cout << val << endl; // val = 5; // ralat! Tidak dapat mengubah nilai melalui rujukan const} int main () { int a = 42; printValue (a); // Keselamatan: Tidak akan mengubah suai, dan akan mengelakkan penyalinan // anda juga boleh mengikat objek sementara atau literal (memerlukan rujukan const) const double & r = 3.14; // pulangan undang -undang 0; }
Tujuan : Ia sering digunakan untuk lulus objek besar (seperti
string
danvector
) dalam parameter fungsi tanpa mahu diubah suai atau menyalin.
Ringkasan perkara utama
- Rujukan adalah alias untuk pembolehubah dan mesti diasaskan.
- Sebaik sahaja rujukan terikat, ia tidak boleh ditukar kepada pembolehubah lain.
- Menggunakan rujukan dalam parameter fungsi boleh membantu mengubah parameter sebenar dan mengelakkan penyalinan.
-
const T&
adalah salah satu jenis parameter yang paling biasa digunakan, terutamanya untuk jenis yang kompleks. - Jangan mengembalikan rujukan kepada pembolehubah tempatan (yang akan menyebabkan rujukan menggantung)!
Pada dasarnya itu sahaja. Petikan adalah salah satu ciri penting yang membezakan C dari C, dan menguasai ia adalah penting untuk memahami C. Modern C.
Atas ialah kandungan terperinci C Contoh rujukan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Direktori apa yang ringkas (membuktikan) yang mencipta ringkas (membuktikan)? Modal teroka mana yang menyokong ringkas (membuktikan)? Betapa ringkasnya (membuktikan) berfungsi SP1ZKVM dan penguasaan rangkaian Opsuccon Teknologi Pengesahan rantaian rantaian membuktikan token token token token peruntukan token utiliti yang berpotensi pemegang token membuktikan ramalan harga token membuktikan aktiviti perdagangan pra-pasaran pra-pasaran ramalan masyarakat membuktikan harga token mengapa memilih yang ringkas? Succ

Direktori Apa yang ringkas (membuktikan) Modal teroka yang menyokong ringkas (membuktikan)? Betapa ringkasnya (membuktikan) Prinsip Kerja SP1ZKVM dan Rangkaian Prover Teknologi Opsuccon Teknologi Pengesahan Cross-Chain Membuktikan Token Ekonomi Token Butiran 2025, 2026, 2027-2030 Ramalan Ramalan Ramalan (membuktikan)

Jika ia meleleh apabila memadam elemen, anda mesti mengelakkan menggunakan Iterator yang gagal. ① Cara yang betul adalah menggunakannya = vec.erase (IT), dan gunakan iterator yang sah yang dikembalikan dengan memadam untuk terus melintasi; ② Idiom yang disyorkan untuk penghapusan batch: vec.erase (std :: rove_if (vec.begin (), vec.end (), syarat), vec.end ()), yang selamat dan cekap; ③ Anda boleh menggunakan iterator terbalik untuk memadam dari belakang ke depan, logiknya jelas, tetapi anda perlu memberi perhatian kepada arah keadaan. Kesimpulan: Sentiasa mengemas kini iterator dengan nilai pulangan memadam, melarang operasi pada Iterator yang gagal, jika tidak, tingkah laku yang tidak ditentukan akan dihasilkan.

Theautokeywordinc deducesthetypeofavariableFromitsinitializer, MakingCodeCleanerAndmoremaintainable.1.itreduceRosities, terutamanyaWithcomplextypesikeiterators.2.itenhancesmaintabilitybyautomaticallyAdAdAdAdAttottoTypeChanges.3.Isisnessaryaryaryypechanges

Tagdispatching menggunakan tag jenis untuk memilih kelebihan fungsi optimum semasa tempoh penyusunan untuk mencapai polimorfisme yang cekap. 1. Gunakan std :: iterator_traits untuk mendapatkan tag kategori iterator; 2. Tentukan pelbagai fungsi kelebihan DO_Advance, dan proses random_access_iterator_tag, bidrectional_iterator_tag dan input_iterator_tag masing -masing; 3. Fungsi utama My_Advance memanggil versi yang sepadan berdasarkan jenis tag yang diperolehi untuk memastikan tidak ada overhead runtime semasa keputusan masa kompilasi; 4. Teknologi ini diterima pakai oleh perpustakaan standard seperti STD :: Advance, dan menyokong penyesuaian lanjutan.

Apabila membuka perisian atau permainan, segera tiba -tiba muncul bahawa "aplikasi tidak boleh bermula secara normal (0xc0000906)" muncul, dan banyak pengguna akan dikelirukan dan tidak tahu di mana hendak bermula. Malah, kebanyakan kesilapan ini disebabkan oleh rasuah fail sistem atau perpustakaan runtime yang hilang. Jangan tergesa -gesa untuk memasang semula sistem. Artikel ini memberikan anda beberapa penyelesaian yang mudah dan berkesan untuk membantu anda memulihkan program dengan cepat. 1. Apakah ralat 0xc0000906? Kod Ralat 0xC0000906 adalah pengecualian permulaan yang biasa dalam sistem Windows, yang biasanya bermaksud bahawa program tidak dapat memuatkan komponen sistem yang diperlukan atau persekitaran yang berjalan ketika berjalan. Masalah ini sering berlaku apabila menjalankan perisian atau permainan besar. Sebab utama mungkin termasuk: Perpustakaan Runtime yang diperlukan tidak dipasang atau rosak. Pakej pemasangan perisian tidak berkesudahan

Gunakan kaedah Seekg dan Tellg std :: ifstream untuk mendapatkan saiz fail di seluruh platform. Dengan membuka fail binari dan meletakkannya hingga akhir, gunakan Tellg () untuk mengembalikan bilangan bait; 2. Adalah disyorkan untuk menggunakan std :: filesystem :: file_size untuk c 17 dan ke atas. Kod ini ringkas dan kesilapan dikendalikan melalui pengecualian. Piawaian C 17 mesti diaktifkan; 3. Pada sistem POSIX, fungsi stat () boleh digunakan untuk mendapatkan saiz fail dengan cekap, yang sesuai untuk senario sensitif prestasi. Kaedah yang sesuai harus dipilih berdasarkan pengkompil dan platform, dan sistem fail std :: harus digunakan terlebih dahulu (jika ada), jika tidak, gunakan IFStream untuk memastikan keserasian, atau gunakan ST pada sistem Unix

Contoh C Linked ini melaksanakan Operasi Sisip, Traversal dan Padam. 1. Gunakan InsertBeginning untuk memasukkan nod di kepala; 2. Gunakan sisipan untuk memasukkan nod dalam ekor; 3. Gunakan DeletEnode untuk memadam nod dengan nilai dan mengembalikan hasil Boolean; 4. Gunakan kaedah paparan untuk melintasi dan mencetak senarai yang dipautkan; 5. Percuma semua memori nod dalam pemusnah untuk mengelakkan kebocoran; Output program akhir mengesahkan ketepatan operasi ini, menunjukkan sepenuhnya kaedah pengurusan asas struktur data dinamik.
