c++中while(*p++);与while(*p){p++;}有什么区别?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 20:53:30
c++中while(*p++);与while(*p){p++;}有什么区别?

c++中while(*p++);与while(*p){p++;}有什么区别?
c++中while(*p++);与while(*p){p++;}有什么区别?

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