#include<stdio.h>
funch(char str[])
{
int num = 0;
while (*(str + num) != '')
num++;
return num;
}
void main()
{
char str[10], * p = str;
gets(p);
printf("%d", funch(p));
}
这是一道选择题,题目是:如果从键盘上输入12345,那么输出结果为多少。
如果是按照代码中printf输出的话,则是252或者353之类的数字,但是选择题的选项也是只有个位数。自己去计算num,好像是算出来6的(对吗)。想问一下,为什么输出的结果为三位数。这个题目是出错了吗,题目问的输出结果是printf的输出吗
第6行 while (*(str + num) != '') 里面的字符是什么,空格还是空字符‘\0’
应该是题目有错。
int funch(char str[]) //少了int
{
int num = 0;
while (*(str + num) != '\0') // 这里若字符为'\0',则函数是计算字符串长度的。
num++;
return num;
}
可以查看手册:c语言--指针声明 中的内容