下面这段代码能把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只是一个指针,你改变指针的值不会带回来的