这两个语句一样吗?

来源:百度知道 编辑:UC知道 时间:2024/06/15 18:25:34
for(p=str;*p!='\0';p++)
for(p=str;*p;p++)
这两个语句一样吗?

这个是一样的

前者是 *p!='\0' for循环中断的条件是*p!='\0'

后者是*p 说明中断条件是 *p为假时才终止

如果这两个条件放在其他地方,可能不成立,但是这个是个字符串

呵呵,条件是一样!效果也一样!

我试了下

#include <stdio.h>

void main()
{
char *str="fdsafdsa";
char *p;

for(p=str;*p!='\0';p++)
printf("%c",*p);
printf("\n");
for(p=str;*p;p++)
printf("%c",*p);
}

结果是一样的!

一样的!

这两个语句是一样的,因为*p就相当于*p!='\0'.