A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 云霄之上 中级黑马   /  2014-7-16 18:00  /  1103 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 云霄之上 于 2014-7-16 18:25 编辑

#include<stdio.h>
int string-len(char*s);
int main()
{int size=string-len("t");
printf("%d\n,size");
return 0;
}
int string-len(char *s)
{char *p=s
while(*s++);
return s-p-1;//为什么这里要减1呢  while应该只是执行了一次啊 s就比p大了1啊????
}

2 个回复

倒序浏览
当*s++=='\0'的时候,s本身已经因为自增而指向了'\0'后面的一个位置,所以要多减1
回复 使用道具 举报
fantacyleo 发表于 2014-7-16 18:23
当*s++=='\0'的时候,s本身已经因为自增而指向了'\0'后面的一个位置,所以要多减1 ...

哎  对了    我脑塞了  谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马