这两个程序有什么区别呢?有以下程序#include int fun(char *s){ char *p=s;while( *p++ = '\0');return(p-s);}main(){ char *p="01234";printf("%d\n",fun(p));}程序的运行结果是( ).AA)6B)5C)4D)3有以下程序#include int fun

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 20:34:19
这两个程序有什么区别呢?有以下程序#include int fun(char *s){ char *p=s;while( *p++ = '\0');return(p-s);}main(){ char *p=

这两个程序有什么区别呢?有以下程序#include int fun(char *s){ char *p=s;while( *p++ = '\0');return(p-s);}main(){ char *p="01234";printf("%d\n",fun(p));}程序的运行结果是( ).AA)6B)5C)4D)3有以下程序#include int fun
这两个程序有什么区别呢?
有以下程序
#include
int fun(char *s)
{ char *p=s;
while( *p++ = '\0');
return(p-s);
}
main()
{ char *p="01234";
printf("%d\n",fun(p));
}
程序的运行结果是( ).A
A)6
B)5
C)4
D)3
有以下程序
#include
int fun(char *s)
{ char *p=s;
while( *p = '\0') p++;
return(p-s);
}
main()
{ char *p="01234";
printf("%d\n",fun(p));
}
程序的运行结果是
( ).A
A)5
B)6
C)4
D)3
尤其是这两句话不理解 while( *p++ = '\0'); 是说p指向字符串中的最后一个的写一个 (\0)吗?
while( *p = '\0') p++; p++执行后是指到\0

这两个程序有什么区别呢?有以下程序#include int fun(char *s){ char *p=s;while( *p++ = '\0');return(p-s);}main(){ char *p="01234";printf("%d\n",fun(p));}程序的运行结果是( ).AA)6B)5C)4D)3有以下程序#include int fun
while( *p++ != '\0'); 当p指向\0时p++已经执行了,p=6了,而while( *p != '\0') p++; 当p指向\0时循环的条件已经不满足了,故后面的P++没有执行,所以p=5;