首頁 > 後端開發 > C++ > C 11 中 std::string 總是以 Null 終止嗎?

C 11 中 std::string 總是以 Null 終止嗎?

DDD
發布: 2024-12-17 08:59:23
原創
805 人瀏覽過

Is std::string Always Null-Terminated in C  11?

在 C 11 中 std::string Null 終止嗎?

2008 年,Herb Sutter 提議收緊 C 0x 中的字串實現,以要求空終止。然而,C 11 標準包含了不同的方法:

是的,std::string 在 C 11 中總是以 null 結尾。

此標準指定指標std::basic_string::c_str() 傳回的值將等於字串中首字元的位址 (&s[0])。因此,在 C 11 中使用 &str[0] 是安全的。

後果:

  • 現在使用 &str[0] 提供了一種安全有效的方法來存取底層字串字元。
  • 空終止的保證簡化了與 C 風格的互通性API 和資料結構。
  • 但是,這並不意味著 std::string 是寫入時複製實作。實作仍然可以選擇透過寫入時複製或保留空終止的其他策略來優化效能。

以上是C 11 中 std::string 總是以 Null 終止嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板