求一个字符串的长度

2025-05-16 20:24:24
推荐回答(1个)
回答(1):

for (i=0;i++;)

因为这个for循环中的i++成了循环判断条件,所以在开始循环之前要先判断它是否为0,如果为0则整个循环直接跳过,不会执行,遗憾的是在这个程序中就出现了这种情况,因为这个for循环等价于:

i=0;
while(i++)
{
if (*(p+i)!=0)
n=n+1;
else break;
}

这样,在判断i++的值时,会先取i的当前值0参与循环条件的判断,所以循环不会执行,n的值没有改变,还是初始化的值0

其次,p=a[0];也是不对的,应该改为p=a;或者p=&a[0];