请帮忙分析下该函数的作用,
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/11 00:53:35
请帮忙分析下该函数的作用,
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)
else
return 0;
}
设char a[]="ab\0123\\098“; 则数组a的长度是多少?
为什么for(k=1;k>=1;k++); 不是无限循环?
![请帮忙分析下该函数的作用,](/uploads/image/z/13364350-70-0.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%2C)
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会有一个最大值,都是不严格的说法
再问: a数组的长度是9。。。 还有能帮我看下这个循环是无限循环吗?for(k=-1;-10
{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会有一个最大值,都是不严格的说法
再问: a数组的长度是9。。。 还有能帮我看下这个循环是无限循环吗?for(k=-1;-10