首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

实参a的副本的产生及使用解决方法

2012-03-16 
实参a的副本的产生及使用#includeiostream.hdouble* fn(const double* pd){static double ad32ad+*pd

实参a的副本的产生及使用
#include<iostream.h>
double* fn(const double* pd)
{
 static double ad=32;
 ad+=*pd;
 cout<<"fn being called...the value is:"<<*pd<<endl;
 return &ad;
}
int main()
{
 double a=345.6;
 const double*pa=fn(&a);
 cout<<*pa<<endl;
 a=55.5;
 pa=fn(&a);
 cout<<*pa<<endl;
}
下列程序注释写到在函数fn()中,没有生成实参a的副本,访问*pd就直接访问a,请问实参a的副本是什么?起什么作用?使用什么情况能生成实参a的副本? 谢谢

[解决办法]
const double* pd 会产生a的指针的副本,a的指针是值传递
const double pd 会产生a的副本,a是值传递

再去看点c的书就明白了。

热点排行