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

来源:学生作业帮助网 编辑:作业帮 时间:2024/08/01 00:01:06
c++中while(*p++);与while(*p){p++;}有什么区别?
xJ@_e}ҊpSPA$ԅ B)$TJZJXEi}-Thq#{;鹢$Q;*ﮉ$ *R8FE=aNN :i@c픕5*zN39D{nP`ZWU0>oQ`qCJ8*Qlz6:cy9@f=jhS+Yݙ4~[P s +X*1,ʧT8 Cn \ZuhbΤQ_Nuӊ,'mv㠏9n}@%FGMи /ʯ@Dptjʡ^8j=

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