提问:输入found name,为什么答案输出ound
网友回答:
首先,你的程序纯研究用,实际开发中毫无意义(没有人会在子函数中调用main的)
其次,你的结果肯定不是ound,而是oun
简单的分析下
if(i==0) {i++; inter(); } 因为i是静态变量,所以这个inter只会调用一次,这样在inter()调用main()就不会死循环
调用 inter();后,s="found name",而i==1
对for(j=0;j<2;j++) main();调用两次main()
第一次:
调用w=find(i++); 也就是find(1),同时i=i+1=2
return (s[k++]); 这里的k++没有任何意义,当k为1时,返回'o',也就会输出一个o
第二次:
调用w=find(i++); 也就是find(2),同时i=i+1=3
return (s[k++]);k为2,返回'u',也就会输出一个u
而 inter();返回后,
再次执行w=find(i++);也就是find(3)
return (s[k++]);k为3,返回'n',也就会输出一个n
程序结束
结果就是
oun
若是你初学C,这种研究没有意义,不如自己多写几个常规的测试