永发信息网

两指数相减计算字符长度的函数; 请给位前辈指点,谢谢!

答案:2  悬赏:70  手机版
解决时间 2021-02-15 08:34
  • 提问者网友:记得曾经
  • 2021-02-14 23:04
两指数相减计算字符长度的函数;

#include "stdio.h"
main()
{
char *s="abcdef";
int strlen(char *s) ;
printf("\nlength of %s=%d\n",s,strlen(s));
}
int strlen(char *s)
{
char *p=s;
while(*p!='\0')p++;
return(p-s); //为什么要减s;
}
最佳答案
  • 五星知识达人网友:独钓一江月
  • 2021-02-14 23:48
字符串是以 \0 (也就是空字符,ASIC码值为0) 为结尾的一串字符,while(*p!='\0')p++之后的结果就是p指向了 \0 这个字符,也就是说p的值为 \0 这个字符的地址,s为字符串的名字,字符串的名字实际上就是字符串中第一个字符的地址。p-s就是字符串中字符占用内存空间的大小,单位是字节。如果*s="我是中国人",则p-s值为10,而不是5,一个汉字点2个字节。
全部回答
  • 1楼网友:底特律间谍
  • 2021-02-15 01:13
你好! s指向字符串首地址 p指向字符串尾地址 2个地址相减 就是字符串长度 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯