流星雨姐姐你还在努力的学C语言啊~~~
老师最近终于给我们布置作业了~真多~很久都没上来看看了。
好,少废话,先看问题。
[1]
我们知道:一个字符串是以'\0'作为它的结尾标志的。
那么对于 abcde\0fghjik\0 来说其实这里有两个字符串。
他们分别是: abcde\0 和 fghjik\0 前一个的长度是5,后一个是6。
如果把*p认为是指向一个字符串的首地址,那么*p表示的字符串仅仅是abcde\0这个而已。这也就是楼上答案5的由来。
[2]
2050?你能得到50吗?那我也没话说了,把你的AMD拆下来好好降降温再试一次。答案是2030
[3]
这个是调用了主函数(main)的参数的问题。
首先我们先得了解main各个参数的作用。
其实也就2个~
1.argc参数。这个参数是个int的变量。它表示着外部命令输入的参数的个数,它最少不能少过1。
2.argv参数。这个就是很明显的啦,是一个不定长度的指针数组。
其中: argv[0]指向程序名(包括路径)
argv[1]指向第一个参数
argv[2]指向第二个参数
. .
. .
argv[n]指向第N个参数
有了上面的知识我们就很容易理解你所问的问题了。
for(i=1;i<argc;i++) len+=strlen(argv[i]);
的作用是得到所有参数的字符数。
如果把你的程序取名为dd.exe,并且把它放在C:\下,那么在DOS命令符下我们输入
dd p
则程序就会输出1,这个是因为p只有1个字符的缘故。
当然啦,如果你输入pp 或者p<空格>p都输出2。
如果你什么参数都不输入则输出0。这就是楼上的答案为什么是0的原因
[此贴子已经被作者于2004-09-15 16:03:11编辑过]