黑马程序员技术交流社区

标题: 疑问?? 问题在程序上 [打印本页]

作者: 云霄之上    时间: 2014-7-16 18:00
标题: 疑问?? 问题在程序上
本帖最后由 云霄之上 于 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啊????
}
作者: fantacyleo    时间: 2014-7-16 18:23
当*s++=='\0'的时候,s本身已经因为自增而指向了'\0'后面的一个位置,所以要多减1
作者: 云霄之上    时间: 2014-7-16 18:25
fantacyleo 发表于 2014-7-16 18:23
当*s++=='\0'的时候,s本身已经因为自增而指向了'\0'后面的一个位置,所以要多减1 ...

哎  对了    我脑塞了  谢了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2