字串“\18\08”在記憶體中占用5B, 但是長度怎么看呢?是看其反斜杠字符個數來確定長度嗎?
uj5u.com熱心網友回復:
字串里面的轉義字符,反斜線后面直接帶數字,被認為是8進制表達反斜線和它后面1-3位數字表示1個字符,但這些數字限于0-7,不能有8、9
并且不大于8進制377
"\1234"這是2個字符,加結束符占用3B,第一個字符是'\123'
"\1284"這是3個字符,加結束符占用4B,第一個字符是'\12',沒辦法,碰到8了
"\6665"這是3個字符,...,666大于377,所以只能取66,后面的6和5都是單獨的正經字符
uj5u.com熱心網友回復:
所以長度是多少???
uj5u.com熱心網友回復:
我說是幾個字符的,strlen就是幾。uj5u.com熱心網友回復:
你的串里長度是2第一個是'\1'
第二個是'8'
第三個是'\0',它碰巧就是結束符,所以計算長度的strlen函式只計算前兩個。
第四個是'8',就算位于長度計算之外了。
uj5u.com熱心網友回復:
哦哦,好噠,蟹蟹。
uj5u.com熱心網友回復:
我也學習了。uj5u.com熱心網友回復:
這都很復雜,建議學好差不多了轉C++,C++好點了再轉Java都看看,再學學前端、Python就是全能程式員。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/256031.html
標籤:新手樂園
上一篇:<簡單數論-斐波那契>為什么運行是對的,提交上去系統總報錯,求指點
下一篇:指標生命周期問題,為什么main函式在呼叫twoSum后,在twoSum中陣列的地址可以回傳給main,不是應該被釋放么?
