while(*p)和if(*p)是什么意思?我是初学者.不好意思.*

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 11:55:21
while(*p)和if(*p)是什么意思?我是初学者.不好意思.*
xRMn@Mp(,r6$*"!d$i);M%4n׮Tf+Eo7uͫG%1 [ʛ6'SN8ꂿYԃyZK T6&_zE&Eb`5|kAWE'M!>sК\x]m̉aY6T\oim@!as,e|hʃ-*@:v 0.HFn[E]N8\R، 랸wX8narkJv(C+vNEXwm~g|h).bgGT(aNO|c6a$]vNrk\{{p5 5nDn0jS_v#^d-=dBdX&_o3^)7^oU

while(*p)和if(*p)是什么意思?我是初学者.不好意思.*
while(*p)和if(*p)是什么意思?
我是初学者.不好意思.*

while(*p)和if(*p)是什么意思?我是初学者.不好意思.*
在C语言中,这是字符串处理时常用的技巧.
这样写的程序最后的机器码很精简,充分利用到CPU本身的功能.
*p是当前p指向的字符,在字符串结尾,*p必为0.这时while或if都得出“假”,条件不成立.
不过必须指出,这样写有一个小漏洞,如果p为空指针时将出现非法操作.所以一般是这样写:
if(p&&*p)
while(p&&*p)
由于C对于逻辑操作是短路型的,所以这样就可避免对空指针的操作,程序将更加健康.