size_t myStrlen(char *s)/*注定了这个函数的实参只能是一个数组,
而不能是一个常量,就是char *s = "hello";的s不能被传进来*/
=============或===============
size_t myStrlen(const char *s)//实参可以是常量也可以是数组
{
int len = 0;
while(s[len]){
len++;
}
return len;
}
int main()
{
char *s = "hello";
const char *s = "hello";
//指向一个字符串常量的地址
s[0] = '1';//通过数组来改都报错!!!
==============================
char a[6] = "hello";
a[0] = 1;//正确
printf("%lu\n",myStrlen(a));
return 0;
}
当函数的参数是一个字符串的时候,如果函数内部并不改变实参的值,那么就把形参定义为cont char *,这样函数的使用会更方便。
当一个数组名做为函数参数的时候,就丢失了数组成员的数量了,但当一个字符串做为函数参数的时候,是可以知道字符串有效字符的数量的,所以就不需要额外传递另一个参数标明这个字符串的长度了
网友评论