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 是閉源付費軟體等。如果只追求單檔案 不依賴第三方庫 無需設定特殊編譯器選項的情況下像...