作者deepdish (要和数学装熟..)
看板TransCSI
标题Re: [问题] 程式:C++ 台大90 第五、六题
时间Mon May 23 20:29:20 2005
我先处理这题我觉得比较简单
: 台大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)
1F:推 Elfiend:感谢,原来指标在字串的意义又不一样了呀。 220.139.131.77 05/23