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

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:10:15
请教各位高手,我是初学者.不好意思.*

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

while(*p)
就是当条件满足*p,即*p的值不为0(也就是为真)的时候循环
if(*p)
是条件语句,同上,当*p为真时执行下面的语句

*p为指针型数据

while(*p)
{
语句;
}
*p是一个指针变量,当*p为真(不为0)时执行括号{}中的语句;
if(*p)
{
语句;
}
语句2;

*p是一个指针变量,当*p为真(不为0)时执行括号{}中的语句;如果*p为假(为0)时,执行括号{}后面的语句2;

前者是条件符合时重复执行
后者是条件符合时执行一次。