gpt4 book ai didi

c - 左值需要作为一元 ‘&’ 操作数——将函数结果作为指针传递

转载 作者:太空宇宙 更新时间:2023-11-04 06:56:21 29 4
gpt4 key购买 nike


我的代码有问题。有以下功能:

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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com