看板 TransCSI 關於我們 聯絡資訊
我先處理這題我覺得比較簡單 : 台大90年度轉學考計概第五題 1 #include <iostream> 2 using namespace std; 3 4 int what( const char *s) 5 { 6 int j; 7 for(j = 0; *s != '\0'; s++) 8 ++j; 9 return j; 10 } 11 12 int main() 13 { 14 char *st = {"this is a test."}; 15 cout << what(st); 16 system("pause"); // 這行只是把命令提示字元視窗暫停一下 17 return 0; 18 } : 這題的問題是字串的儲存與應用方式 : 對於第六行的for裡 *s!='\0' s是指字串的開頭位置吧, : 所以12行的st就是傳一個位置給what函數, : 但是 4行的定義是 const char *s 這不是字串嗎? : 傳一個位置過去,卻用字串的定義接受??? 嗯嗯 這很正常阿 傳記憶體位置 也可以定義位置裡面的資料型態 : 還有,如果第六行的*s是單指一個字母,那怎樣才是整個字串?? 14 行是利用雙引號 "" 以字串將指標 *st 初始化 在 main 中 st 就是整個字串 在 what 中 s 就是整個字串 *s 代表指標 如果要知道真正的位置是用 &s -- 歡迎大家一起加入Intel Philanthropic Peer-to-Peer Program !!! 這項「英特爾慈善『點對點連線』計畫」旨在經由網際網路,把數百萬部個人電腦連結 起來,加速研發治療白血球過多症血癌)的藥物,從而把新藥上市的需要時間縮短約 一半。對本計畫有興趣者,可以到http://www.grid.org/download/gold/download.htm 網站,下載該程式。 一旦一批資料處理完畢,下次電腦連接上網際網路時,不論經由寬頻撥接,電腦便會 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.201.17 ※ 編輯: deepdish 來自: 140.115.201.17 (05/23 20:43) ※ 編輯: deepdish 來自: 140.115.201.17 (05/23 20:45) ※ 編輯: deepdish 來自: 140.115.201.17 (05/23 20:46)
Elfiend:感謝,原來指標在字串的意義又不一樣了呀。 220.139.131.77 05/23