作者noodleT (麵T)
看板C_and_CPP
標題[問題] strtod 的引數設計
時間Wed Apr 13 20:29:07 2016
大家好,
double strtod (const char* str,char** endptr);
strtod 可以用來解析浮點數,並且得到解析完後「游標位置」
方便我們再做其它字串處理。
http://www.cplusplus.com/reference/cstdlib/strtod/
如同上面網址中的 d2 = strtod (pEnd, NULL);
而它只是要指到游標位置,
並不會修改內容,例如 **endptr = 'a'
為什麼 endptr 不加 const 修飾?
加 const 修飾,是可以通過編譯的
http://ideone.com/o2uhO8
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.207.223
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1460550553.A.9F6.html
推 LiloHuang: 設計上是為了方便起見,假使真的想要修改 **endptr 04/13 21:39
→ LiloHuang: 比如說 **endptr = '\0'; 但也暴露著對 string literal 04/13 21:42
→ LiloHuang: 修改的風險 04/13 21:42
→ noodleT: 但第一個引數 *str 已經加了 const , **endptr 指向它, 04/13 21:54
→ noodleT: 照道理來說不是不能將常數指標賦予給普通指標? 04/13 21:54
推 LiloHuang: 因為第一個引數可能本體不是 const char * 而是 char * 04/13 22:37