【发布时间】:2017-12-06 10:22:44
【问题描述】:
有人可以解释一下以下代码中发生了什么吗? (取自 GeeksForGeeks)
int main(){
int a = 10;
++a = 20; // works
printf("a = %d", a);
getchar();
return 0;
}
执行语句 ++a = 20 时究竟发生了什么?另外,请说明为什么这段代码执行失败?
int main(){
int a = 10;
a++ = 20; // error
printf("a = %d", a);
getchar();
return 0;
}
【问题讨论】:
-
我相信这是未定义的行为。
-
这当然在c中不起作用。
-
@eof 它在 python 中也不起作用。你想说什么?这里没有人谈论 C。
-
@tilz0R gcc 对此给出了错误。我猜这意味着它不是UB
-
@FedericoklezCulloca 这个问题最初也被标记为
c。
标签: c++ operators pre-increment