while(*p)和if(*p)是什么意思?

从结果来看没来有什么自区别,都是0为false,非0为true。但bai是概念上是有du区别的。p若是一个zhi指针,则判断指针是否dao为空。当指针的值不是0的时候就认为指针非空,因为当指针的值若为0的时候就是指向操作系统的底部的一个可以显示错误的区域。*p则表示指针指向的值,此时判断的是指针指向的值,没什么区别啊,都是先判断括号中的值,是0就不执行,非0就执行 就比如if(p)、while(p)是p为真执行,即p非0执行。if(!p)、while(!p)是!p,!p为真时执行,即p为假是执行,if(p),while(p),p应该是抄个指针吧,2113那么5261当p不为空4102时则执行。if(!p),while(!p),相反,p为空时执行。if(*p),while(*p)意思是1653p这个指针所指向的变量值不等于0则执行www.shufadashi.com防采集。

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

if是如果,判断完后选择执行还是不执行后面的语句;while是循环,如果条件成立,执行后面语句,再来一遍,如果不成立,跳出循环。 q,p是指针,加*号代表所指向的数,不加*就是个地址,地址也是由数构成的,可以加减

if(*p)是判断指针p所指向地址存放中的值;而if(p)判断指针p本身是否为空。更多追问追答追问那你说下两种情况下,什么时候执行if语句。if(*p)非0执行,if(p)什么情况执行?追答那你自己再看懂不懂再说追问你的意思是只要p中存值了就执行是吗?存'\0'算吗?追答if语句你到底会不会?追问会呀,我就不太清楚对指针的if怎么判断,比如if(p)什么时候执行if下的语句追答if(..)中的条件“...”,你不管它是什么只要值不是0,它就执行if下面的语句。否则不会,换成指针道理一样哈内容来自www.shufadashi.com请勿采集。

声明:本网内容旨在传播知识仅供参考,不代表本网赞同其观点,文字及图片版权归原网站所有。