标签: c increment lvalue rvalue pre-increment
有人可以解释程序中的编译错误
#include<stdio.h> int main() { int i = 10; printf("%d", ++(-i)); return 0; }
答案 0 :(得分:1)
-i的结果是r值,而不是l值。您无法使用++或--运算符增加r值;你只能增加一个l值。
-i
++
--
粗略地说,L值可能出现在作业的LHS(左侧)上。你不能写:
-i = -i + 1;
出于同样的原因,你不能写++(-i)。
++(-i)