关于c++中的引用。想使用一个动态数组的引用,应该如何做?

[复制链接]
查看11 | 回复5 | 2012-9-5 15:51:38 | 显示全部楼层 |阅读模式
你定义一个double* p并且想要在函数中改变p的值就要传递一个p所在的地址进函数中, 可以使用&p取得p的地址, 然后函数定义使用二级指针如下:function( double **p ){...}如果是要使用引用的话, 如下:function ( &p);函数定义时:function( double* &p ){...}你的错误是, 搞错了你所要修改的对象, 你所要修改的是p的值, 传递的需是p的地址, 而p的类型是double类型的指针, 所以你function (double &(*p))这样的写法必然是要错的...
回复

使用道具 举报

千问 | 2012-9-5 15:51:38 | 显示全部楼层
double *p ; 调用时,只需:function ( &p); 函数定义时:function( double **p ){...}...
回复

使用道具 举报

千问 | 2012-9-5 15:51:38 | 显示全部楼层
直接function (p),函数内部运用p[n]对数组修改,会真实改变数组的内容。...
回复

使用道具 举报

千问 | 2012-9-5 15:51:38 | 显示全部楼层
需要提供function的函数声明,如果不会写的话,就将这个函数的代码贴上来,还有编译器的报错信息。从C语言的角度看,*p是一个值,你不能再用&取这个值的地址,我估计你改成function(p)就可以了(这是调用,如果是定义,需要写成function(double *p)...
回复

使用道具 举报

千问 | 2012-9-5 15:51:38 | 显示全部楼层
#include using namespace std;void function(double* &p)
//引用{
for (int i=0;i<3;i++)
{printf("%.3f ",p);
}}void main(){ double* ...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行