看一下这个结果为什么是5不是4?

#include<stdio.h>
int fun(char *s)

{
char *p=s;
while(*p++!=0);
return(p-s);
}
void main()
{
char *r="3210";
printf("%d",fun(r));
}

while循环会将p指针移动到字符串r的结束字符0的下一个字符。

*p++ != 0 这一句是先将*p与0对比,再p=p+1,所以循环结束后p指的是'\0'的后一位不知道是什么的地方
用*(++p)就没问题了

应该是字符‘0’吧,不是数字0,把0加上单引号