有以下程序 #include int fun(char *s) { char *p=s; while( *p++ != ’\0’); return(p-s); } main() { char *p="01234"; printf("%d\n",fun(p

admin2015-07-28  33

问题 有以下程序
#include
int fun(char *s)
{ char *p=s;
while( *p++ != ’\0’);
return(p-s);
}
main()
{ char *p="01234";
printf("%d\n",fun(p));
}
程序的运行结果是( )。

选项 A、6
B、5
C、4
D、3

答案A

解析 函数fun()中的while循环的逻辑是如果*p不为?\0?,则指针p一直向后移动。循环结束的时候,p指向的是字符?\0?的下一位,数组名s为一指针常量,始终指向字符数组的首地址,所以p-s则返回的是字符数组s中有的字符个数(包含结束标识符),所以输出结果为6,答案选A。
转载请注明原文地址:https://jikaoti.com/ti/4ei0FFFM
0

最新回复(0)