区别在于退出循环后, p的值不一样
while( *p++ ); //当*p=0时,退出循环,此时p++仍然执行了;
while( *p ) p++; //当*p=0时,退出循环,此时p++不再被执行;
while( *p++ ); //当*p=0时,退出循环,此时p++仍然执行了;
while( *p ) p++; //当*p=0时,退出循环,此时p++不再被执行;
例如 char *p="ABCD";
执行完第一个while循环后,p指向的是'\0'后面的一个字节,*p的结果是未知的;
而如果是执行第二个循环,则p指向的是'\0',也就是'D'后面的一字节,即*p='\0'。