你好aaa度:
首先,你的这些问题,你自己都是可以解答的,如果你有仔细的踏实的从基础知识学起!
第二,如果你是为了做题而做题,为了达到某种快速过关考试的目的的话,我想你不要学了
直接背答案更直接一点!
第三,问题不在于大与小,难与易,如果书本上已经写的很清楚,并且是在编程时经常用到的
你把他作为问题提出,是没人愿意回答的!
第四,遇到问题要先自己努力去想办法去解决,回想以前所学的,写测试程序,看书,百度等等有
很多的途径.通过自己努力得到的知识是不会轻易被忘掉的!
请楼主要明白,我是没有恶意的,希望你能正确理解.
你的问题:
1.strlen()是个标准库函数 ,求字符串长度的,关于他的用法,一般的教材上都有介绍;
2.printf("%c",*p++);printf("%c",*p++);,看来你对*p是取指定内存里的值已经理解了,
而对p++还没有理解,这里涉及一个是先取值而后++;还是先++,然后取值的问题;
测试:int a=1;
int b=0;
b=a++;
printf("b=a++; b=%d\t a=%d\n",b,a);
b=++a;
printf("b=++a; b=%d\t a=%d\n",b,a);
在遇到一些一下子想不明白的问题时,不妨先自己针对这个问题写个简单的,单一话的小测试程序,通过简单测试
很多疑问,甚至是程序中的错误都会很快解决的!
3.for (p=s+1;p<s+4;p++) printf("%s\n",p);} s的值怎么个意思??
这里有2个s,问题所指不清!如果试问printf()里面的那个%s的话,建议去研究一下printf()的输出格式问题!
如果是前面的s的话,在本程序中s是数组s[]="abcd"名字,s所指向的内存地址就是数组s[]的首元素所在的地址
有点绕(鄙视自己一下,语言表达能力太差).即这里的s<==>&s[0]是等同的.
p=s+1;
相当于 p<==>&s[0]+1<===>&s[1];
注:&取地址操作符,教材上有讲的.
4.void fun (int *x,int i)
void 无返回值什么意思?
无就是没有的意思, 无返回值就是没有返回值的意思
这块在关于函数的有关章节有讲的,说白了,就是当我们确定不需要从函数中返回任何值时,就可以把该
函数定义成viod的类型!比如我们写个myprint()这样的函数,因为我们只想输出我们想要的结果,其他的
对我们没有用,这时就可以考虑这样定义函数了:
void myprint(int x,int y){
printf("x=%d \t y=%d\n",x,y);
}
希望啰嗦了这么多对楼主有帮助!