推 Elfiend:感謝,原來指標在字串的意義又不一樣了呀。 220.139.131.77 05/23
我先處理這題我覺得比較簡單
: 台大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)