看板 C_and_CPP 關於我們 聯絡資訊
大家好, 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
LiloHuang: 剛找了一下 SO 上也有類似的討論 http://goo.gl/SEuTPz 04/13 22:39
LiloHuang: http://goo.gl/hfGz4u 討論串看完的結論就是折衷設計 04/13 22:49