【发布时间】:2012-10-01 18:31:48
【问题描述】:
为什么需要左值作为 a=b+(++c++); 中的增量操作数错误?
只想将 'b+(c+1)' 分配给 'a' 并同时将 'C' 增加 2。
我是初学者,只是想了解一下“LVALUE ERROR”究竟是什么?
main()
{
int a=1,b=5,c=3;
a=b+(++c++);
printf("a=%d b= %d c= %d \n",a,b,c);
}
【问题讨论】:
-
Err...你到底想做什么?似乎您想将 c 增加 2,但我认为这行不通。你要么做一个前置增量,要么做一个后置增量。但我从未见过(甚至考虑过使用)两者。我的猜测是,它根本不知道如何处理该代码。
-
我只想将 'b+(c+1)' 分配给 'a' 并同时将 'C' 增加 2。
-
@leppie - 虽然此类代码的行为是未定义的,但问题本身不是关于未定义的行为,而是关于左值。
-
初学者不应该考虑编写这样的代码,专家知道一开始就不要编写这样荒谬的代码。即使它可以工作,你认为优势是什么?即使它有效,它也会在"too clever" 下梳理。
标签: c increment lvalue decrement operand