代码如下
int my_strlen(char* str)
{
if (*str != '\0')
return 1 + my_strlen(str + 1);
else
return 0;
}
举例如下
char wss[] = "wsscode";
求这个数组字符串长度
在函数my_strlen第一次调用时*str指向w,此后if判断w不等于\0,进而执行return 1+my_strlen(str+1)
在my_strlen(str+1)再一次调用中str已经从1也就是指向2变成指向s,即数组第二位
再经过7次递归以后str指向数组中的\0,即跳出判断,返回return 7次递归后的值7。
最终结果为7