int f(char*s)
{char*p=s;
while(*p)p++;
return(p-s);
main ()
{printf("%d\n",f("123456"));
}
答案是 6
我是初学者,
请大家帮我详细的分析下!
谢谢!!
int f(char*s)
{char*p=s;
while(*p)p++;
return(p-s);
main ()
{printf("%d\n",f("123456"));
}
答案是 6
我是初学者,
请大家帮我详细的分析下!
谢谢!!
你好.
函数f()的作用是返回一个字符串的长度.
首先,在调用函数f()的时候,传递的是字符串的指针. 进入函数f()后,将指针赋值给p.
然后通过while(*p) 判断*p指向的是不是字符串结束符. 不是的话指针p后移. 直到p指向字符串结束符.
那么这时候,p就等于该字符串的尾指针.
再返回尾指针p 减去 头指针s. 就等于字符串的长度了.
举个例子.
假如:
字符串"123456"中 1的地址为70000, 那么在函数中*p首先指向的就是1, 然后指针一直后移,
到字符6的后一位,也就是字符串结束符'\0'. 则,p当前的地址是70006.
把p-a就等于把70006-7000就能得到字符串的长度..