PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] strtod 的引數設計
作者:
noodleT
(麵T)
2016-04-13 20:29:07
大家好,
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
作者: LiloHuang (十年一刻)
2016-04-13 21:39:00
設計上是為了方便起見,假使真的想要修改 **endptr比如說 **endptr = '\0'; 但也暴露著對 string literal修改的風險
作者:
noodleT
(麵T)
2016-04-13 21:54:00
但第一個引數 *str 已經加了 const , **endptr 指向它,照道理來說不是不能將常數指標賦予給普通指標?
作者: LiloHuang (十年一刻)
2016-04-13 22:37:00
因為第一個引數可能本體不是 const char * 而是 char *剛找了一下 SO 上也有類似的討論
http://goo.gl/SEuTPz
http://goo.gl/hfGz4u
討論串看完的結論就是折衷設計
繼續閱讀
Re: [討論] 關於板務的一些想法
s89227
[問題] 計算使用者輸入數列之平均值
harryfly
[問題] VC++ 2012 Form Release .exe封裝問題
yak2573
[問題] 請問三個問題點一下
povertytrap
[問題] 陣列與字串的疑問
auto402749
[問題] class的一點問題
midlanegod
[討論] struct的Initial
MaxHaru
Re: [討論] 關於板務的一些想法
Neisseria
[問題] Ifstream的問題
david830317
Re: [問題] 不用if-else, for, while, do-while取絕
ibmibmibm
Links
booklink
Contact Us: admin [ a t ] ucptt.com