递归函数,它可能需要返回,也可能不需要,但如果没有返回的话,就要注意别的打印函数对他返回值造成的影响
#include<stdio.h>
int Long(char* s1,int x)
{
if(*s1=='\0')
return x;
/*return 0;*/
else
{
Long(s1+1,x+1);
printf("%c\n",*s1);//注意这里
}
}
int main()
{
int x=0;
char s1[]="china";
printf("%d",Long(s1,x));
return 0;
}
那个神奇的位置会影响你的返回值,如果有该行代码,返回的就是2
没有的话返回的就是5
我试了很多次,%c,/n两个字符
若是三个字符就返回3
这就是printf对return 的爱恨情仇
(初学者啥也不懂,爱钻牛角尖,又菜又爱玩,就索性写下来一是为了找共鸣,二是为了让大佬解惑)