作者loveme00835 (恋さや)
看板C_and_CPP
標題Re: [問題] atoi的問題
時間Thu Aug 5 15:49:48 2010
※ 引述《nomorejerry (m e l o)》之銘言:
: ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
: ( 未必需要依照此格式,文章條理清楚即可 )
: 各位板友好
: 剛寫到關於atof...atoi...的函式
: 以atof()為例
: ----------------------------------------
: char* s; double x;
: s = "-1988.12E-25";
: x = atof(s);
在這裡 "-1988.12E-25" 是以「陣列」的形式被存放到程式的某處
, 有很多細節的部份需要搞清楚, 上面的程式碼等同於 :
char* s; double x;
const char (&charArray)[12] = "1988.12E-25";
const char *constPtr = &charArray[0];
s = const_cast<char *>( constPtr );
x = atof(s);
陣列參考那裡只是想讓你明白他的型態是什麼, 很多人都會把指標
跟陣列名稱搞混
: ----------------------------------------
: 1.想請問的是,在這裡的變數s是宣告成指向char型態的指標
: 為什麼 s 還可以給值呢?
: 2.我修改上述程式
: char* s; char s1;
: s1 = "-1988.12E-25";
: s = &s1;
: x = atof(s);
上面的程式碼等同於 :
char* s; char s1;
const char (&charArray)[12] = "1988.12E-25";
s1 = charArray;
// ...
我想到這裡錯誤應該很明顯, 我們沒辦法把一個char陣列assign到
char 變數去...
: 結果編譯時會有錯,他說不能從const char 轉成 char
這個錯誤訊息錯誤阿 > <
: 請板友解惑一下,謝謝
--
╭───╮ ╭╮ ╭╮ ☆
非常非常
善良的你
│╭──╯ ☆
││ ││ ☆
非常
愛我的你
│╰──╮╭──╮│╰──╯│╭──╮╭──╮╭──╮
────────── ╰──╮││╭╮│╰─╮╭─╯│ ‧ ││╭╮││╭╮│
曾一瞬間展露
笑容的你
╭──╯││╰╯│ ││ │ ─╯│╰╯│││││
曾接受我
心意的你
╰───╯╰──╯ ☆ ╰╯ ╰──╯╰──╯╰╯╰╯
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.197.115
※ 編輯: loveme00835 來自: 140.121.197.115 (08/05 15:52)
→ xatier:陣列名稱可以想成是一個const char* 型的指標, 指向的位址 08/05 16:01
→ xatier:定不變 08/05 16:01
→ loveme00835:如果像一樓所說, 就太浪費陣列所包含的資訊了, 考慮 08/05 16:11
推 nomorejerry:感謝樓上各位,一時忘記字串是以陣列方式呈現 08/05 16:23