while(*p)这个条件是如何终止的?


#include <stdio.h>
int main()
{
   int i,k=0;
   char a[80], b[80], *p;
   p=a;
   gets(p);
   while(*p)
   {  for(i=1; (i-1)!=0||(i-1)==0; p++, k++, i++)  b[k]=*p;
      if( (i-1)%3==0)  { b[k]=' ' ;  k++; }
   }
   b[k]='\0';
   puts(b);
   return 0;
}

当*p的值时终止,即循环到字符串a的结束符时
也就是这个循环会处理完字符串a的所有字符,直到p指针移动到字符串的结束符'\0'为止