CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

高中底手路过都进来一下,讨论点小问题

楼主richard_2010(只爱子寒)2006-03-10 09:02:18 在 C/C++ / C++ 语言 提问

比如说有这样一个函数  
  #include   <iostream.h>  
  int   fun1(int   x,int   y)  
  {    
  int   z;  
  z=x+y;  
  return   z;  
  }  
  void   fun2()  
  {  
  cout<<"do   nothing!"<<endl;  
  }  
  int   main()  
  {  
  int   a,b,c;  
  cout<<"please   input   two   number:"<<endl;  
  cin>>a>>b;  
  c=fun1(a,b);  
  cou<<c<<endl;  
  fun2();  
  cout<<c;  
  return   0;  
  }  
  在这个函数里面,函数返回的时候,到底是被调函数的栈还存在,只是他的栈指针指向了别处,还是它将值给了主函数栈中的一个临时变量通过临时变量把值给了c而被调函数的栈已经撤消?  
  如果是前者,那主函数第二次输出c的时候怎么找到那个栈中的值的呢? 问题点数:30、回复次数:10Top

1 楼goodluckyxl(被人遗忘的狗)回复于 2006-03-10 09:10:46 得分 6

是你说的后者    
  函数调用完成后call内占用的栈区变量释放了  
  fun1返回的的int在寄存器中   赋给了c后即便寄存器在fun2的call中被修改也无妨  
  c属于main函数中的栈变量   保持到return   0;后释放Top

2 楼qybao(阿宝)回复于 2006-03-10 09:15:36 得分 5

后者,函数返回值在被调处压栈(调用者的栈),然后撤销函数栈(被调者的栈)Top

3 楼sankt(宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒.)回复于 2006-03-10 10:22:10 得分 2

学习  
  Top

4 楼fulgent_lee(共同学习-->共同进步)回复于 2006-03-10 10:34:03 得分 3

后者Top

5 楼yelling(Ray(←☆→射手))回复于 2006-03-10 10:52:00 得分 3

后面的Top

6 楼aniude(重返荣耀)回复于 2006-03-10 12:59:14 得分 2

MarkTop

7 楼ytfrdfiw()回复于 2006-03-10 16:35:51 得分 2

学习Top

8 楼tor_sun(宋笑痴)回复于 2006-03-10 17:14:42 得分 2

路过学习!!Top

9 楼redf0x_1(雪逸红狐)回复于 2006-03-10 17:23:24 得分 3

后者,这就是为什么函数的返回是值传递,即将值复制给了接收者Top

10 楼weilong122(萧瑟)回复于 2006-03-10 17:51:52 得分 2

受教了  
  感谢各位Top

相关问题

  • 禽兽教师!路过有分!100分,气愤,散分,大家来讨论!
  • 讨论:关于供应链(supply chain)的解决方案---路过有分
  • DataGrid问题请高手路过就看!!!
  • 路过的高手请进一下!
  • 请教高手,路过的帮忙啊
  • 散分!讨论关于禽兽教师!路过有分!100分,贴子在http://community.csdn.net/Expert/topic/4251/4251704.xml?temp=.7553369
  • 欢迎高手来讨论!
  • 黄金百两问个路,高手走过路过别错过!
  • 各路过路高手,还有其他方法吗?
  • 高手大侠们走过路过别错过。。。

关键词

  • fun1

得分解答快速导航

  • 帖主:richard_2010
  • goodluckyxl
  • qybao
  • sankt
  • fulgent_lee
  • yelling
  • aniude
  • ytfrdfiw
  • tor_sun
  • redf0x_1
  • weilong122

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo