不创建临时变量求字符串长度需要用到递归的方式
给函数传过去数组(指针)arr,指针向后读要+1,逐字读下去,即1+(ello world)–>1+1+(llo world)–>1+1+1+(lo world) … 直到找到\0休止符
代码如下:
#include<stdio.h>
int my_strlen(char* str)
{
if (*str != '\0')//解引用用来找到字符串hello world,\0不算做数组长度的组成成分
return 1 + my_strlen(str + 1);//数组是指针,指针+1会向后读字符串
else
return 0;
}
int main()
{
char arr[] = "hello world";
int len = my_strlen(arr);//向my_strlen函数传过去数组的首元素地址
printf("len=%d", len);
return 0;
}
运行结果如下图