输入found name,为什么答案输出ound

输入found name,为什么答案输出ound

1 个回答

2020LOVE

提问:输入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,这种研究没有意义,不如自己多写几个常规的测试


  • 1 关注
  • 0 收藏, 浏览
  • 提出于

相似问题