Re: [問題] atoi的問題

看板C_and_CPP作者 (恋さや)時間14年前 (2010/08/05 15:49), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《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)

08/05 16:01, , 1F
陣列名稱可以想成是一個const char* 型的指標, 指向的位址
08/05 16:01, 1F

08/05 16:01, , 2F
定不變
08/05 16:01, 2F

08/05 16:11, , 3F
如果像一樓所說, 就太浪費陣列所包含的資訊了, 考慮
08/05 16:11, 3F

08/05 16:12, , 4F
08/05 16:12, 4F

08/05 16:23, , 5F
感謝樓上各位,一時忘記字串是以陣列方式呈現
08/05 16:23, 5F
文章代碼(AID): #1CMcqYxV (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #1CMcqYxV (C_and_CPP)