惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
博客园_首页
Microsoft Security Blog
Microsoft Security Blog
Blog — PlanetScale
Blog — PlanetScale
M
MIT News - Artificial intelligence
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
Jina AI
Jina AI
N
Netflix TechBlog - Medium
量子位
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
InfoQ
J
Java Code Geeks
T
Tailwind CSS Blog
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
阮一峰的网络日志
阮一峰的网络日志
Engineering at Meta
Engineering at Meta
腾讯CDC

博客园 - zim.NET

悼念友人 博客搬家了 3D学习笔记之一句话总结(不断更新中) 混乱你的代码 - zim.NET - 博客园 这么个女孩,你娶吗(转) 被误传了数千年的七句话(精简版_转载) 找工作故事之篇二 找工作故事之开篇 - zim.NET - 博客园 失落的阳光,陈酿的悲伤——许美静 一行命令解决批量重命名 一个空间换时间算法 求最长公共子序列 最小生成树算法讨论 用EditPlus打造你自己的IDE 将PPT内容导出为JPG图片 C/C++ 误区:fflush(stdin) 关于"extern" 闲谈成员初始化列表 脑筋急转弯3600题
函数调用中的黑客技术
zim.NET · 2007-11-10 · via 博客园 - zim.NET

//说明在问题描述之前:
 本问题在正常情况下没有特别的实用价值,但却是让你对函数调用过程有一个更深入了解的机会.

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

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

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

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