A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ting00 中级黑马   /  2014-6-18 22:35  /  967 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ting00 于 2014-6-19 09:55 编辑

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

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

}

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

3 个回复

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

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

谢谢  你说的很好理解  我明白了,谢谢!!!!
回复 使用道具 举报
客气了。。:loveliness:
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马