请问您这是c语言的一个问题,请问while ((*s1++ == *s2++ )&& (!s1));这个代码它的运行顺序是什么呢?是(s1++ == *s2++ )先完全运行后,再运行(!*s1)?(!s1)是作为条件假跳出循环,还是作为条件真运行下面的代码呢?如果换作(--n)那么while ((s1++ == *s2++)&& (--n))它的运行顺序又是什么呢!请您指点迷津,谢谢您!
while ((*s1++ == *s2++ )&& (!s1));
相当于
while (s1 != '\0')
{
if (*s1 != *s2) break;
s1++;
s2++;
}
那种写法纯属炫技,没有任何必要。