C string型別結尾會像C一樣新增 0嗎?

時間 2021-12-26 08:15:26

1樓:C十十20年

參見《C++程式設計精要教程》,全面介紹C++2017標準,配有習題解答。在string物件內部,存貯了字串的長度,所以不需要用'\0'作為字串終結符,事實上它也沒能作為終結符。定義物件string a("abc")和物件string b("abc\0"),則a.

length()的返回值為3,而b.length()的返回值則為4;轉為C語言的字串後,則strlen(a.c_str())的結果為3,並且strlen(b.

c_str())的結果也為3。

2樓:ggffss

[0x1]+[14個byte]+[0x7F]一共長度是16個byte

其中14個byte預設情況下貌似應該都是 0xFF 也就是null關於問題:我的回答——是

主要是字串以及結構體型別的記憶體布局及其策略。

3樓:歐文韜

會std::basic_string::c_str - cppreference.com

但有可能在呼叫c_str()/data()/operator的時候才加。但是大多數實現應該都是直接加了吧

C 作為一種靜態型別語言,為什麼會引入 var?

小蝶驚鴻 c 的var跟js之類的var不是一樣的,c 的var在編譯的時候會先幫你轉化成正確的型別然後再編譯。所以別被var這個名字騙了。 靈劍 C 也有auto了啊 var在C 中的作用是通過初始化表示式隱式推斷出乙個變數的型別,這種語言特性在非常多的流行的靜態型別語言中都支援了,比如C Go等...

C 中超出精度double型別的值為什麼會出現這種現象?

邱昊宇 真心沒那麼複雜。問 比 3 小的最大 double 究竟是多少?答 是 std nextafter 3.0,2.0 比如 double maxBelowThree std nextafter 3.0 2.0 auto uniqueDigits std numeric limits max d...

c 能像python一樣寫指令碼嗎

流清商 有專門的 C 直譯器可以做到,不過需要另行安裝配置,例如 CINT Cling Ch 等。不過他們的能力一般是受限的,例如 CINT 對模板的支援不好,Cling 對 Windows 系統的支援有瑕疵,Ch 是閉源付費軟體等。如果只追求單檔案 不依賴第三方庫 無需設定特殊編譯器選項的情況下像...