设有如下函数定义:
int fun(char *str)
{
char *p;p=str;
while(p!=‘\0’)
p++;
return (p-str);
}
则以下语句执行后的输出结果是( )
printf(“%d\n”,fun(“student”));
A. 7 B. 8 C. 9 D. 10
此题无法运行,应该把while循环内的p改为*p,才是值与值的比较,只是p的话,是地址和具体值的比较,运行会报错。
这段代码定义了一个函数fun,接受一个指向字符的指针作为参数。在函数中,定义了一个指针p,并将其初始化为指向传入的字符指针str。然后,使用一个while循环来遍历字符串,直到遇到字符串结束符'\0'为止。在循环中,每次将指针p向后移动一位。最后,返回字符串的长度,即指针p当前位置减去初始位置指针str的位置。
while里应该是*p
此题正确结果为1,如果将if改为while就是7
admin 回复 非加力: 感谢提醒,已修正
zhongym6 回复 非加力: 此题无法运行,应该把while循环内的p改为*p(解值),才是值与值的比较,只是p的话,是地址和具体值的比较,运行会报错。
A
用户登录可进行刷题及查看答案
登录后提交答案