黑马程序员技术交流社区

标题: 函数调用 [打印本页]

作者: ting00    时间: 2014-6-18 22:35
标题: 函数调用
本帖最后由 ting00 于 2014-6-19 09:55 编辑

f() {  int x=1;
         x=x+2;
        printf("%d",x);   }

int main(){
     f();
     f();
  return 0;

}

这个函数的输出结果是什么?


作者: 黄莉萍    时间: 2014-6-18 23:36
输出两次3
1.当程序执行到第一个f()函数调用时,就会为这个f函数开辟新的存储空间,存储f函数里面的代码,并执行里面的代码到函数(代码块)结束,f()函数调用完,开辟的存储空间就会被销毁回收,就输出3;
2.当执行到第二个f()函数调用时,又会为这个函数开辟新的存储空间,再执行里面代码到结束,当调用完,存储空间就会被销毁回收 也是输出3
也就是每调用一次函数,就会为函数开辟一次新的存储空间,调用完,存储空间就会被销毁回收
你这调用了两次函数,所有每次输出的结果都是3   最终结果就是两次3
我是这样理解的,希望可以帮到你


作者: ting00    时间: 2014-6-19 09:54
黄莉萍 发表于 2014-6-18 23:36
输出两次3
1.当程序执行到第一个f()函数调用时,就会为这个f函数开辟新的存储空间,存储f函数里面的代码 ...

谢谢  你说的很好理解  我明白了,谢谢!!!!
作者: 黄莉萍    时间: 2014-6-20 10:49
客气了。。:loveliness:




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2