//说明在问题描述之前:
本问题在正常情况下没有特别的实用价值,但却是让你对函数调用过程有一个更深入了解的机会.
问题描述:
现给你一个函数原型为:void change(unsigned a);
//注:此处的a即不是引用也非指针.
现要求,能在主函数中反应出此函数对a的值的改变.
即形如:
main()
{
unsigned x = 10;
change(x);
cout<<x<<endl;//现要求x值在经过change()后有变化.如何办到?
}
说明:以往我们常通过传址传指针来达到此目的,现在有这么一个怪的函数,仍然要求有此效用,你会怎么办?
我们有两种方法可以达到此效果:
1) 在change()里寻找到main()里的x变量的实际地址,进而改变它. 问题的难点在于"寻址".
2) 利用C++的异常处理.(CSDN里某人提出的,理论上可行,没有验证)
关于此问题的源码,请动用你的脑筋思考,我将在不久公布我的一个实现版本.嘿嘿.
本问题在正常情况下没有特别的实用价值,但却是让你对函数调用过程有一个更深入了解的机会.
问题描述:
现给你一个函数原型为:void change(unsigned a);
//注:此处的a即不是引用也非指针.
现要求,能在主函数中反应出此函数对a的值的改变.
即形如:
main()
{
unsigned x = 10;
change(x);
cout<<x<<endl;//现要求x值在经过change()后有变化.如何办到?
}
说明:以往我们常通过传址传指针来达到此目的,现在有这么一个怪的函数,仍然要求有此效用,你会怎么办?
我们有两种方法可以达到此效果:
1) 在change()里寻找到main()里的x变量的实际地址,进而改变它. 问题的难点在于"寻址".
2) 利用C++的异常处理.(CSDN里某人提出的,理论上可行,没有验证)
关于此问题的源码,请动用你的脑筋思考,我将在不久公布我的一个实现版本.嘿嘿.