Tag:

为什么这个演员的结果不是左值?

我需要一些关于这种奇怪行为的建议 – 让我们有这样的代码: int ** p; 这编译没有任何麻烦: p++; 但是这个: ((int**)p)++; 给我这个错误消息: “error: lvalue required as increment operand” 。 我正在将它转换为它已经存在的类型,没有任何变化,那么问题是什么? 当我尝试编译一个旧版本的gdb时,这是我遇到的问题的简化版本。 所以我想,这样做有所改变。 知道第二个例子有什么问题吗?

lvalue需要作为递增操作数错误

#include int main() { int i = 10; printf(“%d\n”, ++(-i)); // <– Error Here } ++(-i)什么问题? 请澄清。