别人给了一个回文字符串的判断源程序,有三句不太明白~请指教!
#include<stdio.h>#include<string.h>
void main()
{char a[20];
char *q,*p;
printf("input the string:");
gets(a);
p=a;
q=a+strlen(a)-1; /*为什么要减一?*/
while(p!=q&&q-p!=1&&*p++==*q--);/*while和if这两句不明白,希望能解释一下,越清楚越好,谢谢~~*/
if(p==q||q-p==1)printf("YES\n");
else printf("NO\n");
}