Adakah C 11 Memerlukan Rentetan Null-Terminated untuk c_str() dan data()?

Mary-Kate Olsen
Lepaskan: 2024-10-27 03:15:02
asal
202 orang telah melayarinya

 Does C  11 Require Null-Terminated Strings for c_str() and data()?

Adakah C 11 Membenarkan Rentetan Tidak Ditamatkan Nol dalam Kaedah c_str()?

Dalam C 11, takrifan c_str( ) untuk kelas basic_string telah berubah. Ia kini ditakrifkan sebagai bersamaan dengan data(), yang seterusnya ditakrifkan untuk mengembalikan penunjuk kepada elemen ke-n rentetan, dengan n adalah antara 0 dan saiz rentetan tolak 1.

Walau bagaimanapun , takrifan kaedah operator[] yang dikemas kini, yang mendasari kedua-dua c_str() dan data(), menjelaskan bahawa rentetan kini mesti menggunakan penimbal yang ditamatkan nol secara dalaman.

Secara khusus, kaedah operator[] memerlukan bahawa nilai yang dikembalikan adalah rujukan kepada objek jenis T dengan nilai carta(), dengan T ialah jenis elemen rentetan dan carta() ialah jenis aksara nol. Selain itu, nilai yang dirujuk ini tidak boleh diubah suai.

Memandangkan c_str() dan data() kedua-duanya diperlukan untuk operasi O(1), pelaksanaan pada dasarnya terpaksa menggunakan penimbal yang ditamatkan nol. Tambahan pula, keperluan nilai pulangan bagi kaedah operator[] juga bermakna bahawa aksara null yang ditamatkan mestilah dalam penimbal yang sama dengan elemen rentetan.

Atas ialah kandungan terperinci Adakah C 11 Memerlukan Rentetan Null-Terminated untuk c_str() dan data()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!