char *my_strchr(char const *str,int ch)
{
char *flag=NULL;
for(;(str=strchr(str,ch))!=NULL;str++)flag=str;
return flag;
}
int main()
{
char *str="hello";
printf("%x\n",my_strchr(str,'l'));
printf("%x\n",my_strchr(str,'h'));
return 0;
}
输出结果:40306b
403068
my_strchr()函数用于输出ch最后一次出现的地址.
但是!!!!my_strchr()函数在使用的时候不是移动了str的位置么,指向了'l'的地址,这时str的位置移动到'l'了,为什么在main中第二次调用查找'h'的时候还可以用呢?