
这段C语言指针麻烦帮忙解释一下
指针这章学的还不够熟..麻烦高手们帮我解释解释这段代码..#include"stdio.h"intstrlen(char*s){char*p=s;while(*p!='\...
指针这章学的还不够熟..麻烦高手们帮我解释解释这段代码..
#include "stdio.h"
int strlen(char *s)
{
char *p =s;
while (*p!='\0')
p++;
return p-s;
}
void main(){
printf("\nThe length of string 'computer' is %d\n",strlen("computer"));
}
主要是实参传形参的值是怎样传的..char类型的他并不是数组呀..应该只能存放一个字符才是..他怎么能把一个字符串给传过去呢..
我明白这指针是用他们的地址相减..得出的差就是他们的个数..可不明白实参和形参的如何传递... 展开
#include "stdio.h"
int strlen(char *s)
{
char *p =s;
while (*p!='\0')
p++;
return p-s;
}
void main(){
printf("\nThe length of string 'computer' is %d\n",strlen("computer"));
}
主要是实参传形参的值是怎样传的..char类型的他并不是数组呀..应该只能存放一个字符才是..他怎么能把一个字符串给传过去呢..
我明白这指针是用他们的地址相减..得出的差就是他们的个数..可不明白实参和形参的如何传递... 展开
展开全部
char *p=s;使得p和s指向同一个位置,就是某个字符串的开头。while循环的作用是遍历字符串的每个值,看其是否为“\0”也就是字符串的结尾,如果不是则p指向下一个位置,如果是则返回p-s的值,休息此时p指向结尾,s仍然指向开头,那么他们的差值就是字符串的长度
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询