求解释,一运行就弹出错误!

#include
void main()
{
char a[6]="nihao";
char *p=a;
int k=1;
while(*p!='/0')
{

 k++;
  p++;

 }

printf("%d",k);
}
这个程序到底哪里有问题?

数组结束符不对,可以改一下

 //数组用
char a[6]={'n','i','h','a','o','\0'};
//循环
while(*p!='\0')

while(*p!='/0')
->
while(*p!='\0')

这种问题,单步调试一下肯定可以找到原因的。
调试,对于程序员来说是必要的功夫。

调试时通过观察变量的当前值,就会发现在字符串遍历结束时,没有字符串结束符 NULL。