24小时热门版块排行榜    

查看: 360  |  回复: 2

lzy860928

铜虫 (初入文坛)

[求助] 调用子函数,形参为指针,输入变量是否会改变

void man()
{
    double a[2]={0,0};
    double b[3]={1,1,1}
    double *pa=a;
    double *pb=b;
    ......
    subfunc(double *a,double *b );
    .....
}
double    subfunc(double *a,double *b )
    {  
     .....
      for (i=0;i<8;i++)
       {*(a+i)=10*i;}
     .....
      return(...)
    }     

要使参不发生改变,应该怎么做
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

李家大少

铜虫 (初入文坛)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
lzy860928: 金币+1, 谢谢咯 2013-08-28 19:56:46
jjdg: 金币+1, 感谢参与 2013-08-29 00:40:21
在子函数里申明一个局部变量,
进入子函数首先 把a的值赋给 局部变量
2楼2013-08-27 20:53:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
lzy860928: 金币+1, 谢谢,我的问题解决了 2013-08-28 19:56:22
jjdg: 金币+1, 感谢参与 2013-08-29 00:40:26
形参为指针,也不一定会改变.取决于你的函数体是否对指针指向的数值做过修改.你的函数里面的确改变了a指向的值.要是形参不变,可以在定义的时候不要使用指针类型参数,或者进入函数体后,先保存原值,退出函数之前恢复原值.
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2013-08-28 16:21:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lzy860928 的主题更新
信息提示
请填处理意见