请帮忙分析下该函数的作用,int fun(char*s){char *t=s;while(*t++);return(t-s-1);}int f(char *a,char *b){while(*a++==*b++)if(*(a-2))return*(--a)-*(--b)elsereturn 0;}设char a[]="ab\0123\\098“; 则数组a的长度是多少?为什么for(k=1;k
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/08 00:51:17
![请帮忙分析下该函数的作用,int fun(char*s){char *t=s;while(*t++);return(t-s-1);}int f(char *a,char *b){while(*a++==*b++)if(*(a-2))return*(--a)-*(--b)elsereturn 0;}设char a[]=](/uploads/image/z/12455185-49-5.jpg?t=%E8%AF%B7%E5%B8%AE%E5%BF%99%E5%88%86%E6%9E%90%E4%B8%8B%E8%AF%A5%E5%87%BD%E6%95%B0%E7%9A%84%E4%BD%9C%E7%94%A8%2Cint+fun%28char%2As%29%7Bchar+%2At%3Ds%3Bwhile%28%2At%2B%2B%29%3Breturn%28t-s-1%29%3B%7Dint+f%28char+%2Aa%2Cchar+%2Ab%29%7Bwhile%28%2Aa%2B%2B%3D%3D%2Ab%2B%2B%29if%28%2A%28a-2%29%29return%2A%28--a%29-%2A%28--b%29elsereturn+0%3B%7D%E8%AE%BEchar+a%5B%5D%3D%22ab%5C0123%5C%5C098%E2%80%9C%3B+%E5%88%99%E6%95%B0%E7%BB%84a%E7%9A%84%E9%95%BF%E5%BA%A6%E6%98%AF%E5%A4%9A%E5%B0%91%3F%E4%B8%BA%E4%BB%80%E4%B9%88for%28k%3D1%3Bk)
请帮忙分析下该函数的作用,int fun(char*s){char *t=s;while(*t++);return(t-s-1);}int f(char *a,char *b){while(*a++==*b++)if(*(a-2))return*(--a)-*(--b)elsereturn 0;}设char a[]="ab\0123\\098“; 则数组a的长度是多少?为什么for(k=1;k
请帮忙分析下该函数的作用,
int fun(char*s)
{char *t=s;
while(*t++);
return(t-s-1);
}
int f(char *a,char *b)
{
while(*a++==*b++)
if(*(a-2))
return*(--a)-*(--b)
else
return 0;
}
设char a[]="ab\0123\\098“; 则数组a的长度是多少?
为什么for(k=1;k>=1;k++); 不是无限循环?
请帮忙分析下该函数的作用,int fun(char*s){char *t=s;while(*t++);return(t-s-1);}int f(char *a,char *b){while(*a++==*b++)if(*(a-2))return*(--a)-*(--b)elsereturn 0;}设char a[]="ab\0123\\098“; 则数组a的长度是多少?为什么for(k=1;k
int fun(char*s) //函数类型返回值为int 函数名称fun 参数char型指针S
{char *t=s; //将地址s赋值给char型指针t,即相当于把内存中值复制到t所指位置;
while(*t++); //做循环逐位移动指针t的地址并判断当前内存位置中的值是否为真,即是否大于0,如果不是就结束循环;结束的时候t的位置也就是相当于字符串的结尾地址;
return(t-s-1); //使用t(尾地址)减去s(字符串首地址)再减去1(首地址S中也属于字符串长度) 得到字符串长度值,并返回.
}
补充
你的疑惑之处应该是没有记住 字符串的结尾字符是‘\0‘,当遇到\0时循环就结束了,所以函数返回的是2;
第二个应该说是无限循环的,但是K是int型,那么K会有一个最大值,都是不严格的说法