黑马程序员技术交流社区
标题:
函数调用
[打印本页]
作者:
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