Berikut ialah beberapa pilihan tajuk, dengan mengingati format soalan: Langsung dan Jelas: * Adakah `string::c_str()` Masih Ditamatkan Null dalam C 11? * Adakah `string::c_str()` Menjamin Penamatan Batal dalam C

Barbara Streisand
Lepaskan: 2024-10-26 14:34:02
asal
273 orang telah melayarinya

Here are a few title options, keeping in mind the question format:

Direct and Clear:

* Is `string::c_str()` Still Null-Terminated in C  11?
* Does `string::c_str()` Guarantee Null Termination in C  11?

More Engaging:

* C  11 Mystery: Is `string::c_str

Adakah String::c_str() Tidak Lagi Ditamatkan Null dalam C 11?

Dalam C 11, kelakuan rentetan:: c_str() telah menjadi perdebatan. Sesetengah sumber mencadangkan bahawa ia mungkin tidak lagi menghasilkan rentetan yang ditamatkan batal.

Walau bagaimanapun, setelah diteliti dengan lebih teliti, ia menjadi jelas bahawa ini tidak berlaku. Takrif operator[] dalam C 11 memerlukan rentetan untuk menggunakan penimbal yang ditamatkan nol secara dalaman. Ini bermakna c_str(), yang ditakrifkan dari segi operator[], mesti juga mengembalikan rentetan yang ditamatkan nol.

Secara khusus, seksyen 21.4.5 standard C 11 menyatakan bahawa operator[] mesti mengembalikan "rujukan kepada objek jenis T dengan nilai carta(); nilai yang dirujuk tidak boleh diubah suai." Ini menunjukkan bahawa rentetan mesti mengandungi aksara nol pada penghujungnya.

Selain itu, bahagian 21.4.7.1/1 mentakrifkan c_str() sebagai "Penunjuk p supaya p i == &operator[](i) untuk setiap i dalam [0,saiz()]." Ini bermakna c_str() menyediakan akses kepada penimbal yang sama seperti operator[], yang mesti ditamatkan batal.

Oleh itu, walaupun terdapat kebimbangan awal, string::c_str() masih dijamin menghasilkan null- ditamatkan rentetan dalam C 11.

Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, dengan mengingati format soalan: Langsung dan Jelas: * Adakah `string::c_str()` Masih Ditamatkan Null dalam C 11? * Adakah `string::c_str()` Menjamin Penamatan Batal dalam C. 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!