l作为递增操作数所需的值

时间:2014-08-24 15:46:37

标签: c increment lvalue rvalue pre-increment

有人可以解释程序中的编译错误

#include<stdio.h>
int main()
{
   int i = 10;
   printf("%d", ++(-i));
   return 0;
}

1 个答案:

答案 0 :(得分:1)

-i的结果是r值,而不是l值。您无法使用++--运算符增加r值;你只能增加一个l值。

粗略地说,L值可能出现在作业的LHS(左侧)上。你不能写:

-i = -i + 1;

出于同样的原因,你不能写++(-i)