Welcome to zimmerman's blog!

初学->进阶->高手 有很长的路要走
美静->若英->我说 有许多的歌可听

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
//说明在问题描述之前:
 本问题在正常情况下没有特别的实用价值,但却是让你对函数调用过程有一个更深入了解的机会.

问题描述:
现给你一个函数原型为:void change(unsigned a); 
//注:此处的a即不是引用也非指针.
现要求,能在主函数中反应出此函数对a的值的改变.
即形如:
main()
{
  unsigned x = 10;
  change(x);
  cout<<x<<endl;//现要求x值在经过change()后有变化.如何办到?
}

说明:以往我们常通过传址传指针来达到此目的,现在有这么一个怪的函数,仍然要求有此效用,你会怎么办?

我们有两种方法可以达到此效果:
1) 在change()里寻找到main()里的x变量的实际地址,进而改变它.  问题的难点在于"寻址".
2) 利用C++的异常处理.(CSDN里某人提出的,理论上可行,没有验证)

关于此问题的源码,请动用你的脑筋思考,我将在不久公布我的一个实现版本.嘿嘿.

posted on 2007-11-10 00:44  zim.NET  阅读(360)  评论(1编辑  收藏  举报