CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

WHO CAN HELP??

楼主lkforever1006(风过无痕)2004-11-03 11:47:19 在 C/C++ / 新手乐园 提问

学C++过成中遇到的一个问题,请教教我。  
   
  C++中调用函数时的栈内存的结构是这样的  
   
  函数参数  
  返回地址  
  函数内部变量,对象  
   
  当函数结束的时候,栈指针应该是返回到返回地址,这时候函数内部变量对象被清除,但函数参数好象并没有被清除,想问问是怎么回事?函数参数要到什么时候才被清除? 问题点数:0、回复次数:5Top

1 楼goodluckyxl(被人遗忘的狗)回复于 2004-11-03 12:26:43 得分 0

参数分为实参和型参  
  传入后   实参是不会被清除   除非你手动在函数体内清除   那需要引用传递  
  一般被清除的是行参   和   局部变量    
  值传递实参传入后会产生临时对象既为行参   你所有的操作基于这个临时对象产生  
  当函数调用完毕   临时对象   销毁你操作也就随之无意义   除非返回这个对象  
   
  另外   栈上分配的局部数组  
  是不能被返回的   因为   数组只能返回地址   而局部对象在函数调用后销毁  
  返回的地址也是无用的  
   
  Top

2 楼daylove(爱晶如梦)(昨夜西风调碧树,独上高楼,望尽天涯路……)回复于 2004-11-03 12:42:11 得分 0

楼上说的好,支持一下>.Top

3 楼lkforever1006(风过无痕)回复于 2004-11-04 11:26:24 得分 0

那么,  
  函数参数             -----------------------》这一块储存的是实参吗?  
  返回地址      
  函数内部变量,对象Top

4 楼clennpillo(于果)回复于 2004-11-04 13:26:28 得分 0

直接针对你提出的问题.  
   
  函数参数是调用者压进去的  
  所以  
  函数参数是由调用者清除的,被调用者管不着,前提是C约定  
   
   
   
  Top

5 楼sharkhuang(走吧走吧!人总会慢慢长大~)回复于 2004-11-05 13:33:18 得分 0

楼上是对的!参数实调用者的东西。Top

相关问题

  • Help!
  • help
  • Help.....
  • help!!!!
  • help!!!!!!!!
  • help!!!!!!!!!!!!!!!!!!!
  • help !!!!!!
  • HELP!!!!!!!!!!
  • HELP:)
  • help.............

关键词

  • c++
  • 函数
  • 调用
  • 参数
  • 清除
  • 对象
  • 返回
  • 地址
  • 临时
  • 内部变量

得分解答快速导航

  • 帖主:lkforever1006

相关链接

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

广告也精彩

反馈

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