读书人

下面这段代码能把q的值带回来吗?解决

发布时间: 2012-04-14 17:14:21 作者: rapoo

下面这段代码能把q的值带回来吗?

C/C++ code
typedef struct  poly{    float coef;    int expn;    struct poly *next;}poly,*lpoly;int locate(lpoly p,int expn,lpoly q){    lpoly r;    inist(&r);    q=p;    if (expn>(q->expn))        return 0;    else     {        r=q;        q=q->next;        while (q!=NULL&&(expn>q->expn))            {                r=q;                q=q->next;            }    q=r;    return 1;    }}

我试了几次,每次用q->expn时都是没有赋值!

[解决办法]
想把q的值带出来,如果是C++的话可以用引用:
定义成如下形式:
int locate(lpoly p,int expn,lpoly &q)

如果是C的话,就只能用二级指针了。
将q 替换成 *q


[解决办法]
你只是改变q的值,没有改变q指向的结构的值
q只是一个指针,你改变指针的值不会带回来的

读书人网 >软件架构设计

热点推荐