Penggunaan '&&' (Double Ampersand) dalam C 11
C 11 memperkenalkan jenis rujukan baharu yang dipanggil nilai rujukan, ditunjukkan oleh simbol ampersand berganda "&&".
Apakah itu Rujukan Rvalue?
Rujukan rvalue ialah rujukan yang boleh mengikat rvalue, yang merupakan ungkapan atau nilai sementara yang tidak diberikan kepada pembolehubah bernama. Ini berbeza dengan rujukan nilai, yang mengikat pembolehubah atau objek yang dinamakan.
Faedah Rujukan Rnilai
Rujukan Rnilai memberikan beberapa faedah, termasuk:
-
Bergerak Semantik: Mereka membenarkan operasi "pergerakan" yang cekap, yang memindahkan sumber dari satu objek ke objek lain tanpa menyalin.
-
Pemajuan Sempurna: Mereka membolehkan fungsi templat untuk memajukan hujah dengan betul berdasarkan status rnilai/lnilai mereka.
Sintaks dan Penggunaan
T&& var; // Mengisytiharkan rujukan rnilai kepada T bernama 'var'
Bila Menggunakan Rujukan Rvalue
Gunakan rujukan rvalue dalam senario berikut:
-
Pindahkan Pembina dan Operator: Untuk menentukan fungsi yang boleh mengalihkan sumber dengan cekap daripada nilai r.
-
Pemajuan Sempurna: Untuk mencipta fungsi generik yang boleh mengendalikan nilai dan nilai secara telus.
-
Penukaran Tersirat: Untuk membenarkan rujukan rnilai terikat pada sementara yang terhasil daripada tersirat penukaran.
Sifat Penting
-
Resolusi Terlebih: Rujukan Lnilai diutamakan untuk lnilai, manakala rujukan rnilai diutamakan untuk rnilai.
-
Tersirat Mengikat: Rujukan Rvalue boleh terikat pada rnilai dan sementara tanpa penukaran eksplisit.
-
Kategori Nilai: Rujukan rvalue bernama ialah lnilai, manakala rujukan rvalue tanpa nama ialah rvalues.
Atas ialah kandungan terperinci Apakah Rujukan C 11 Rvalue (&&) dan Bagaimana Ia Digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn