首先,上代码
int my_strlen(const char*str)
{
int count = 0;
assert(str != NULL);
while (*str == '\0')
{
str++;
count++;
}
return count;
}
int main()
{
char arr[] = "abcdef";
int len = my_strlen(arr);
printf("%d\n", len);
return 0;
}
1——分析main函数部分:
首先创建数组arr,arr中的元素为abcdef 创建一个变量len来接受我们创建的函数my_strlen(arr)的返回值,其中arr是数组首元素的地址。
printf打印数组元素个数
2————分析函数部分:
我们创建的函数的返回值是数组元素个数,所以我们的类型是int,const是用来修饰参数str的,因为我们函数的目的是求元素个数,所以const固定数组首元素的地址,多一层保障,因为我们main函数传递过来的参数是arr(数组首元素的地址),所以我们要用指针来接收地址,常见变量str(char*)类型
assert指针的意思是断言,括号内的如果为真,直接跳过,如果为假,则报错,这里的意思是为了防止传递过来的是空指针
while循环的目的很简单,求元素个数,count代表元素个数