java中:public class A{
public static void main(String args[]){
int i = 0, j;
for(j = 0; j < 10; j++){
i = i++;
}
System.out.println(i);
}
}
输出:0C中:
#include "stdio.h"
main()
{
int i = 0, j;
for(j = 0; j < 10; j++)
{i = i++;}
printf("%d\n", i);
}
输出:10C版的我明白,但JAVA版的不解。请高人指点
public static void main(String args[]){
int i = 0, j;
for(j = 0; j < 10; j++){
i = i++;
}
System.out.println(i);
}
}
输出:0C中:
#include "stdio.h"
main()
{
int i = 0, j;
for(j = 0; j < 10; j++)
{i = i++;}
printf("%d\n", i);
}
输出:10C版的我明白,但JAVA版的不解。请高人指点
public static void main(String args[]){
int i = 0, j;
for(j = 0; j < 10; j++){
i = i++;
//我的理解是:1.i++:temp=i;i=i+1;
// 2.i=i++;temp=i;i=i+1;i=temp;
}
System.out.println(i);
}
}
直接i++就好了
i=i++;//i=i=i+1
是不是这样?
>3>2。所以就会出现楼主看到的现象。不过,是不是所有的 Java 和 C 的编译器都是按照上面说的顺序工作,我也没有把握,反正没有见到过“标准规范”说明这个事情。也许就像前面 xoch421() 说的,“java的内部机制问题,不需要深究”。
------------------
多谢。结贴,给分。汇编还是有用地...