我的代码有问题。
有以下功能:
static Poly PolyFromCoeff(int coeff);
static Mono MonoFromPoly(const Poly *p, int exp);
在另一个函数中我有这一行:
Mono m = MonoFromPoly(&PolyFromCoeff(10),4);
但我收到此错误消息:
lvalue required as unary ‘&’ operand
如果我将第一个结果保存到一个变量中,则没有错误:
Poly p = PolyFromCoeff(10);
Mono m = MonoFromPoly(&p,4);
为什么第一个方案是错误的?
最佳答案
正如它所说,运算符 &
需要一个左值作为其参数,即它不能应用于临时值。地址不与值关联,仅与对象关联。
在第二种形式中,您实例化了一个包含此值的对象,您可以轻松获取该对象的地址。
关于c - 左值需要作为一元 ‘&’ 操作数——将函数结果作为指针传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43927124/