c语言数组传递

来源:百度知道 编辑:UC知道 时间:2024/05/26 00:41:59
初学者,对C语言的数组和指针不是很明白
main(){
char str1[]="abcdefghijkl";
char str2[]="efg";
printf("str2 is str1=%d \n" ,substr(*str1,*str2));
}

substr(s1,s2)
char *s1,*s2; //这里的s1,s2 和上面的形参s1 ,s2 有什么关系?
{
register int t;
char *p2 ,*p;

for(t=0;s1[t];t++){
p=&s1[t];
p2=s2;
while(*p2&&*p2==*p){
p++;p2++;
}
if(! *p2){return (t);}
}
return(-1);
}
while的循环条件怎么解释

char *s1,*s2;这里的s1,s2就是上面的substr(s1,s2)里的s1,s2啊,就是定义它的类型,即定义为指向char型的指针变量!

substr(*str1,*str2));这里函数调用不对吧,传过去数组名就可以了,即substr(str1,str2));试试看吧