【发布时间】:2013-05-01 17:27:57
【问题描述】:
最近我偶然发现了这段Java代码:
int a=0;
for(int i=0;i<100;i++)
{
a=a++;
}
System.out.println(a);
'a' 的打印值为 0。但在 C 的情况下,'a' 的值为 100。
我无法理解为什么 Java 的值为 0。
【问题讨论】:
-
“但是在 C 的情况下” - 嗯?哦,C 语言.. 我很确定你需要一个序列点才能工作
-
不,在 C 中这是未定义的行为。
-
序列点在 Java 中定义良好.. 所以你一直在重新分配 0.. 很酷
-
在 C 中也是 0,不是吗。
标签: java