请帮忙分析下该函数的作用,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/05/06 17:20:29

请帮忙分析下该函数的作用,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会有一个最大值,都是不严格的说法