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

admin2020-11-23  30

问题 有以下程序
#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、5
B、6
C、4
D、3

答案A

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

相关试题推荐
最新回复(0)