永发信息网

高级语言程序设计56

答案:1  悬赏:30  手机版
解决时间 2021-04-27 17:21
  • 提问者网友:趣果有间
  • 2021-04-27 04:00

int f(char*s)

{char*p=s;

while(*p)p++;

return(p-s);

main ()

{printf("%d\n",f("123456"));

}

答案是 6

我是初学者,

请大家帮我详细的分析下!

谢谢!!

最佳答案
  • 五星知识达人网友:末日狂欢
  • 2021-04-27 05:39

你好.


函数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就能得到字符串的长度..

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯